Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ACL/Permissions系统MYSQL数据库设计方法_Sql_Mysql - Fatal编程技术网

ACL/Permissions系统MYSQL数据库设计方法

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

这是一个很大的问题,所以如果有人能给我指出一个很好的教程或者其他东西,如果这里的答案太长,那就太好了

我有一个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 | 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提供无限的权限。

编辑和更新有什么区别?“创建”在哪里?编辑和更新有什么区别?“创造”在哪里?