雖然我正在努力解決一些初始設計問題,但我正在設計一個支持學習的ACL系統供我自己使用。使用Doctrine構建一個通用的OO ACL
現在,我看着使其成爲基於類和唯一的標識符,在表中存儲它們的方式:
Table: ACL
ResourceClass
ResourceKey
RoleClass
RoleKey
Permission
顯然,這是怎麼回事,要求我反思對被查詢類導出正確的ResourceClass值。
我想知道如果這種做法之前已經完成,或者如果任何人有一些建議,以更好的方式做。其他事情,如角色之間的遞歸關係也混淆了我,因爲我不確定如何遞歸查詢構建和資源的ACL。
我不是Zend ACL的巨大粉絲,所以請不要對此提出建議 - 我意識到這一點!
當人們稱重時,會對這個問題做進一步的說明,請耐心等待!這個問題本身可能需要一些迭代! ;)
太棒了,我將不得不考慮所有不同的行爲。 爲了清楚起見,您使用了NestedSet實現爲您的角色/組?這樣你可以獲得完整的角色/組列表,然後查詢存儲所有這些密鑰的所有權限的表? – 2010-07-20 21:12:27
你不需要這樣的教義。 NestedSet只是用於在數據庫中存儲樹狀結構的SQL模式。您可以隨意使用它。將ACL作爲NestedSet進行存儲,可以輕鬆找到兒童,父母,上級等的權限。這對於大型ACL結構非常適合。對於簡單的ACL,數組Zend_Config(或者序列化ACL,如果你確實需要db)就足夠了。 – takeshin 2010-07-21 06:46:49
我對使用zend_ACL不感興趣,因爲它很笨拙。我希望獲得更多關於如何將ACL存儲爲樹的細節,但對我而言,它並不是真正的數據樹。而角色是。 但是我確實需要將它們存儲在數據庫中。這就是我使用教義的原因。 – 2010-07-21 12:13:28