2009-03-03 13 views
5

Per quanto riguarda il design:Qual è il miglior design per sicurezza/permessi per porzioni di un sito web - la tabella dei dati è saggia?

  1. Ogni utente fa parte di un gruppo SOME. (vendite, parti, giocatori di baseball, qualunque)
  2. Ogni "pagina web" viene vista da un gruppo di persone. (vendite + parti + joe in contabilità che ha ottenuto un permesso speciale)
  3. Ogni pagina Web è di solito parte di un gruppo di pagine Web su un certo livello - si potrebbe provare a tenerle in qualche directory o iniziare con un prefisso ma non sempre - vale a dire quando qualcuno si unisce le vendite non si vuole avere specificare - si arriva a vedere SalesPage1, SalesPage2, SalesPage3, SalesPartsPage1 ecc

risposta

3

Dal momento che "Ogni pagina web è di solito parte di un gruppo di pagine web ... "probabilmente è meglio comportarsi come se" Ogni pagina web è sempre parte di un gruppo di pagine Web ... "- anche se alcuni gruppi avranno solo 1 membro!

che semplifica il vostro modello di dati a:

Utenti ---> Gruppi utenti < -------> Gruppi di pagine < --- Pagine

10

Il modo più semplice è la seguente:

utenti: contiene l'elenco degli utenti, i nomi, e

SecurityGroups di id: contiene un elenco di sicurezza g rouche come "Vendite", "Marketing". (Id, gruppo di protezione nome)

Pagine: contiene l'elenco delle pagine (id, nome della pagina)

UserSecurityGroups: (userId, securityGroupId). Tabella di riferimento incrociato dei diritti assegnati

PageSecurityGroups: (ID pagina, securityGroupId, consentito). Tabella di riferimenti incrociati dell'appartenenza al gruppo di sicurezza a cui è consentito accedere alla pagina.

Per ogni caricamento della pagina si dovrebbe verificare se la tabella PageSecurityGroups per la pagina specifica contenesse un accesso di gruppo che l'utente aveva.

Ovviamente, potrebbe esserci di più, ad esempio assegnare una pagina a un utente specifico ma è possibile estrapolarla in base alle necessità dell'applicazione.

+0

Wow, siete fantastici che avete dato risposte così utili in così poco tempo. –

Problemi correlati