ACL/Permissions系统MYSQL数据库设计方法
这是一个很大的问题,所以如果有人能给我指出一个很好的教程或者其他东西,如果这里的答案太长,那就太好了 我有一个MySQL数据库,我想有一个ACL系统来管理对象的权限 例如 所以我想我需要以下表格ACL/Permissions系统MYSQL数据库设计方法,sql,mysql,Sql,Mysql,这是一个很大的问题,所以如果有人能给我指出一个很好的教程或者其他东西,如果这里的答案太长,那就太好了 我有一个MySQL数据库,我想有一个ACL系统来管理对象的权限 例如 所以我想我需要以下表格 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 | d
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的客户列表并列出所有权限,所以可能我做错了什么
非常感谢您的反馈。仅从您对acl和acl权限的定义来看,acl和acl权限可以是用户id或组id,如果每个用户都是自己组的成员,例如“Just Brett”和“All DBA”,可能会更干净一些
没有其他东西会让人想到。仅从您对acl和acl权限的定义来看,acl和acl权限可以是用户id或组id,如果每个用户都是自己组的成员,例如“Just Brett”和“All DBA”,可能会更干净一些
没有其他事情会让我想起。我也曾在类似的案例中工作过,我认为我的工作方式有很大的灵活性:
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,每个rol拥有无限的权限。我在类似的情况下工作过,我认为我这样做的方式有很大的灵活性:
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,并为每个rol提供无限的权限。编辑和更新有什么区别?“创建”在哪里?编辑和更新有什么区别?“创造”在哪里?