Momenteel heb ik drie tabellen voor gebruikers en groepen (tabellen hieronder zijn fictief, maar zijn voldoende als voorbeeld):
tbluser
UserID | Username
tblgroup
GroupID | GroupName
tblusergroup
UserID | GroupID
Alle security baseert zich met het huidige systeem op groepen - users zijn lid van groepen en objecten worden via een tussentabel gelinkt aan groepen. Bijvoorbeeld:
tblarticle
ArticleID | ...
tblarticlesecurity
ArticleID | GroupID
In de toekomst zou het echter ook mogelijk moeten zijn om aparte users rechten te geven op artikels. (Maw users en groepen door elkaar) Hoe los ik dit het best op?
Ik dacht te werken met een nieuwe tabel, bijvoorbeeld:
tblsecurityobject
SecurityObjectID | ObjectType | ObjectID
Waarbij ObjectType een integer zou zijn, wat moet aanduiden of het ObjectID een GroupID is of een UserID. Security op artikelen zou dan gebeuren met SecurityObjects ipv groepen. Ergens vind ik het echter heel fout om de waarde van een kolom af te laten hangen van een andere. Anderzijds vind ik het properder werken dan bijvoorbeeld het volgende:
tblsecurityobject
SecurityObjectID | UserID | GroupID
Waarbij ofwel het één of ander ingevuld wordt...
Zijn hier andere best practices voor?
tbluser
UserID | Username
tblgroup
GroupID | GroupName
tblusergroup
UserID | GroupID
Alle security baseert zich met het huidige systeem op groepen - users zijn lid van groepen en objecten worden via een tussentabel gelinkt aan groepen. Bijvoorbeeld:
tblarticle
ArticleID | ...
tblarticlesecurity
ArticleID | GroupID
In de toekomst zou het echter ook mogelijk moeten zijn om aparte users rechten te geven op artikels. (Maw users en groepen door elkaar) Hoe los ik dit het best op?
Ik dacht te werken met een nieuwe tabel, bijvoorbeeld:
tblsecurityobject
SecurityObjectID | ObjectType | ObjectID
Waarbij ObjectType een integer zou zijn, wat moet aanduiden of het ObjectID een GroupID is of een UserID. Security op artikelen zou dan gebeuren met SecurityObjects ipv groepen. Ergens vind ik het echter heel fout om de waarde van een kolom af te laten hangen van een andere. Anderzijds vind ik het properder werken dan bijvoorbeeld het volgende:
tblsecurityobject
SecurityObjectID | UserID | GroupID
Waarbij ofwel het één of ander ingevuld wordt...
Zijn hier andere best practices voor?
TOGAF, ArchiMate, DEMO, ITILF, VCE, MCSE, CCA, CCAA, CCEE, CCIA