我需要知道在sql中执行表结构的最佳方法。 我有3个实体。权限,角色和用户。用户可以拥有多个角色,角色可以拥有不同的权限。任何人都可以建议我以最好的方式在sql中设计表结构。
答案 0 :(得分:1)
用户可以拥有多个角色,角色可以有不同的角色 特权。
我们只能在识别表格数量方面为您提供帮助。其他表结构可能与您的应用程序,数据库供应商等非常相关。
您的上述陈述提示多对多关系(图表关系),如下所示:
用户< - 用户可以拥有多个角色,角色也可以与许多用户相关 - > 角色
角色< - 角色可以有许多权限,权限也可以属于许多角色 - > 权限
所以在语义上我看到3个实体表和2个映射表,如下所示。
实体表: 用户 角色 特权
映射表 User_Roles Role_priviledges
**多对多关系大多介绍第三张表。
答案 1 :(得分:0)
听起来你的Users表与你的Roles表有多对多的关系,你的Roles表应该与你的Privileges表有多对多的关系。
您可以通过交叉实体(UserRoles和RolePrivileges)执行此操作,交叉实体只有关系两侧的外键。
答案 2 :(得分:0)
我认为你应该创建下表(对于大数据)
1-用户
2-特权(主人)
3-角色(大师)
现在您已创建权限 - 角色和用户角色的桥接表
4- UserRolesBridge(用户角色的行方式数据)
5- RolesPrivilegesBridge(角色特权的行数据)