2010-07-06 78 views
2

這是一個有點大問題,因此,如果任何人都可以指向我一個偉大的教程或別的東西,如果太長,在這裏回答這個問題將是巨大的。ACL /權限系統MYSQL數據庫設計方法

我有一個MySQL數據庫,我想有一個ACL系統管理權限的對象。

Customer (read | edit | update | delete) 

所以我想我需要在下表

users 
groups 
users_groups (users_id, groups_id) 
acl (user_id | group_id, item_id) 
acl_permission (user_id | group_id, item_id, (read | edit | update | delete)) 

我建這個,和它的作品,我只是想知道,如果這是一個不錯的方式做到這一點,或者如果它可以被簡化/改進..

某些查詢可能涉及很多聯接說要爲用戶x獲取客戶的列表並列出所有權限,所以也許我做錯了什麼。

非常感謝任何反饋..

+0

什麼是「編輯」和「更新」的區別? 「創造」在哪裏? – 2011-05-24 04:11:34

回答

0

剛剛從看你的ACL和acl_permission的定義 - 它可以採取兩種爲user_id或GROUP_ID,也許這將是乾淨了一點,如果每個用戶是的成員他們自己的團體,例如「Just Brett」以及「所有DBA」。

閒來無事躍起在腦海中。

0

我在類似的情況下工作,我覺得我做的方式我有很大的靈活性:

employee (id, firstname,lastname) 
department (id, name, department_id) 
rol (id, name) 
employee_rol (employee_id, department_id, rol_id) 
permission(id, name, description, read,write, etc...) 
rol_permission (rol_id, permission_id) 

所以我可以有每個員工和每個ROL無限許可無限ROLS。