Sto sviluppando un'applicazione per la nostra azienda che alla fine avrà molti modi per limitare gli utenti a particolari sezioni/moduli. Mentre l'applicazione è ancora piccola, mi piacerebbe passare a un nuovo metodo di archiviazione delle autorizzazioni che, man mano che l'applicazione cresce, rimarrà facile da gestire e interrogare.Memorizzazione delle autorizzazioni dell'applicazione in un database
Attualmente nel nostro database MySQL abbiamo una tabella chiamata "utente" che memorizza l'ID dell'utente, il nome utente e la password. In una tabella separata denominata "user_acl" è il seguente:
user_acl_id
acl_root
acl_news_read
acl_news_write
acl_news_modify
acl_reports_read
acl_reports_write
acl_reports_modify
acl_users_read
acl_users_write
acl_users_modify
Abbiamo solo 3 moduli al minuto, ma con il tempo più sarà creato e dovranno essere aggiunti i permessi per ciascuno.
Piuttosto che creare una colonna per ogni permesso, c'è un altro modo o la memorizzazione di queste informazioni?
Come aggiungere ulteriori informazioni su ruoli come admin pubblico, ecc.? per esempio l'amministratore ha qualcosa in più da aggiungere come il nome della società ... e l'utente non ha questo campo? – james
Vorrei memorizzare le informazioni nell'entità correlata, puoi aggiungere colonne aggiuntive alla tabella, se vuoi aggiungere più informazioni per un ruolo allora puoi aggiungere una colonna in più nella tabella dei ruoli, lo stesso vale per la tabella utente –
se ho una tabella utente con campi username e password.che è generico per tutti gli utenti. e ho una tabella dei membri con qualche campo in più come il nome della società, l'indirizzo ecc ... anch'io ho un admin con qualche informazione in più..so ho bisogno di usare la relazione supertipo/sottotipo per l'utente con l'amministratore di memebers? – james