在涉及多於兩個級別的數據庫中存儲權限的最佳方式是什麼?目前,只有2級別的權限和它們存儲在一個橋樑實體表是這樣的:在數據庫中保存三個級別的權限
UID | Buildings | Floor
------------------------
1 | A, B, C | F9
還有有這表明,用戶不應該有權對這些相同的結構稱爲異常另一個表:
UID | Buildings | Floor
------------------------
1 | null | C4
所以在我上面的例子中,用戶1將權限9樓在建築樓所有的房間建築物A,B和C,而不是地板4 C.
的新要求,是添加更加細化的權限級別,房間在地板上。所以代碼看起來像A1A,A1B等。建築物和房間總是字母,樓號總是數字。 我無法更改這些代碼的格式,因爲它們來自外部來源。
處理這種情況的最佳方法是什麼?我知道Linux使用一些字符串處理組和用戶的文件權限,但是在我的情況下,有數千個房間聽起來不太可行,而且用戶/組的事情只有兩個級別。
我考慮過只是添加一個名爲Rooms
的新列,並繼續用逗號分隔的字符串,但是有沒有更好的方法?如果有關係,我使用MySQL。
你看過外部授權和使用像XACML這樣的框架嗎? – 2014-09-21 14:00:48
[路徑枚舉和封閉模式](http:// stackoverflow。/ 23224653#23224653/data-structure-for-many-to-many-hierarchies-in-sql-server/23224653)可以幫助你。 – 2014-09-21 16:35:07
@DavidBrossard我剛剛對XACML進行了簡要的研究,它似乎1)對於項目的範圍而言是過分的,2)開發團隊只由少數人組成,沒有任何人有過這方面的經驗,這是我們必須花時間學習。 – 2014-09-22 02:50:22