我有派对模型数据库架构:
Modules
-------------------------------
id, name, description
Modules_fields <--- Relationship witch fields will be in each module
--------------------------------
module_id, field_id
Fields <--- Module_records fields (will define witch table field will user see)
--------------------------------
id, name, type
Module_records <--- Entity child - real records
--------------------------------
id, name, description
Entity <--- Central records table - there stores all real record id's
-------------------------------
id, module_id, module_record_id
我需要的是表关系女巫定义所有可能的权限。如:
用户可以分组。根据权限 - 它可以查看他的记录,他的组记录或所有记录。可以根据权限查看,编写,编辑或删除。行级权限。
用户可以拥有角色(或角色)。根据位置 - 可以查看父角色用户记录。行级权限。
群组有个人资料。这很简单。只需添加Fields-to-GroupProfile表,并设置witch字段即可查看profile子项。列级权限。
我的想法是设置实体表字段user_id - 它将定义实体创建者用户。之后可以在UserGroups中通过此user_id进行搜索并获取group_id。再创建一个表,为每个模块定义全局权限 - 女巫组/用户将看到模块。但我不喜欢这样的解决方案。
所以我想添加用户,群组,个人资料和角色:
Profiles - define witch fields will user see (User has many profiles), columnlevel
id, name
UsersProfiles - relationships
user_id, profile_id
Users - just user table
id, user_group_id
User_UserGroups - relationships
user_id, user_group_id
UserGroups - define in witch groups user will be, rowlevel (Salesgroup1, Salesgroup2)
id, parent_id
UserRoles - relationships
user_id, role_id
Roles - define user hierarchy (Boss, employee)
id, parent_id
RolesProfiles - relationships
role_id, profile_id
也许你有更好的想法?