我有以下表結構:涉及複雜的用戶權限一個表
Entity
---------------------
id | name
Users
---------------------
id | name | password
UserGroups
---------------------
id | parent_id | name
Users_UserGroups
---------------------
user_id | user_group_id
Roles
---------------------
id | parent_id | name
Users_Roles
--------------------
user_id | role_id
而且主要目標是用下列條件創造Entity
行級訪問限制:
1)用戶創建Entity
- 他可以看到它(他是老闆)
2)用戶組成員可以看到它太(但如果定義一樣 - 看不到 - 這將是用戶私有的)。因此,記錄可以是用戶或組私人或公共 - 都可以看到記錄。例如,用戶在銷售團隊A中,並且有記錄可以查看所有組成員,但是可以有一個或多個記錄,哪些只能看到用戶 - 可能是潛在客戶。
3)例如,用戶A的角色是salesman
,此角色是父角色sales managers
的子角色。然後用戶是sales manager
角色可以看到用戶A的實體。角色的層次結構。老闆可以看到什麼是做他的直接僱員:)
4)將有profile
表過,這裏的個人資料可以被添加到角色,如果需要,用戶也。
主要問題是如何將用戶/組/角色/配置文件與實體關聯?以及如何定義權限?我的想法是創建列'user_id'到Entity
。當查詢Entity
記錄時,找到用戶,看到哪個角色,組,配置文件是用戶等。但我認爲它太複雜了,也許可以有更簡單的方法,沒有很多額外的表格。我的意見是感激:)
這會是這樣的[這](http://storenow.net/my/?f=5629)1)做什麼用的'entity_owner_principal_id' - ?我認爲這是entity_permission_id與否? 2)如何正確命名'Principal'表? 3)分析和複雜查詢(它是大型項目的一小部分)會快嗎?謝謝! – Orbitum
類似的東西,但如果你的工具可以顯示1-1關係,那將是一件好事。我對這些模塊不太確定,但我不認爲這個問題是關於這個問題的。 – Laurence
我更新了以前的評論 - 有一些問題。何處放置1對1關係船? – Orbitum