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