Originariamente inviato da simone.marchese
In questo momento la tabella è permessi
id idUser Moudulo x Modulo y Modulo z
1 10 si si no
E da qui vado a verificare la persona collegata e verifico i vari moduli attivi.
Te hai detto che devono essere le righe e non le colonne ovvero?
mah una cosa simile:
codice:
Tabella Utente:
id, nome, ...
Tabella Moduli:
id, nome
Tabella Menu
id, parent_id, url, label
Tabella Permessi:
id, id_utente, id_modulo
Tabella Menu->Modulo
id, id_menu, id_modulo
Per non parlare di una soluzione più complessa:
codice:
-- Tabella Utente
id, username
-- Tabella "Risorse"
id, type
-- Tabella Moduli
id PK, name, Foreign key (id) references resources(id) on delete cascade on update cascade
-- Tabella Funzioni
id PK, name, module_id FK, Foreign key (id) references resources(id) on delete cascade on update cascade
-- Tabella Menu
id, parent_id, url, label
-- Tabella Menu -> Risorse
id, resource_id, menu_id
-- Tabella Permessi (Utenti->Risorse)
id, user_id, resource_id
dove c'è da notare che moduli e funzioni sono sottotipi di Risorsa in maniera che continui ad avere sempre una sola tabella di collegamento con gli utenti per definire i permessi...
ovviamente è inteso che se esiste questa riga:
id, id_utente_A, id_modulo_X
allora l'utente A può vedere il modulo X, altrimenti no