sql中的表结构

时间:2017-12-28 08:25:04

标签: database-design

我需要知道在sql中执行表结构的最佳方法。 我有3个实体。权限,角色和用户。用户可以拥有多个角色,角色可以拥有不同的权限。任何人都可以建议我以最好的方式在sql中设计表结构。

3 个答案:

答案 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(角色特权的行数据)