这个数据库设计是循环的吗?

时间:2016-08-19 01:20:48

标签: mysql database

我正在开发一个组管理页面,其中包含可变数量的选项卡,站点上每个组的管理员可以从中选择其页面。管理员还应能够创建组成员角色,为这些角色分配选项卡的权限,以及为成员分配角色。任何成员也可以属于一个或多个组。

我已经为这个数据库概述了一些数据库表。以下是三个感兴趣的内容:

groups
----------------
GroupID <- PRIMARY KEY
GroupName
GroupDescription

group_member_records
--------------------
GroupMemberRecordID <- PRIMARY KEY
GroupID <- FOREIGN KEY: references groups.GroupID
GroupMemberID <-FOREIGN KEY: references group_members.GroupMemberID
GroupMemberRoleID <- FOREIGN KEY: references group_member_roles.GroupMemberRoleID

group_member_roles
-----------------------
GroupMemberRoleID <- PRIMARY KEY
GroupID <- FOREIGN KEY: references groups.GroupID
GroupMemberRoleName
// NOTE: GroupID,GroupMemberRoleName UNIQUE

我最初决定只给group_members一个GroupMemberRoleID外键,但问题在于成员可能属于多个组,并且具有组成员角色,并且对于该成员所属的至少两个组,该组成员角色将是不同的!因此,我将GroupMemberRoleID外键移动到group_member_records

在我最终实现记录组的所有选项卡权限的表之前,我想知道几件事:

  1. 是否存在循环引用的风险?我已经看到了密切相关的问题answered here,但我不确定它们的含义:
  2.   

    这不是循环参考。

         

    如果电子邮件具有强大的完整性关系   邀请和邀请独立强烈的诚信   关系返回电子邮件(例如)。

    (我对我不清楚的事情大胆)

    1. 这根本就是糟糕的设计还是不好的做法?

0 个答案:

没有答案