ERD - 建模可能的关系

时间:2016-05-27 12:51:51

标签: entity-relationship erd

我正在寻找一个解决方案来模拟一个" can-be"关系。 例如:User可以是Special User

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

可以将实体类型(结果)视为以下两件事之一:

  • 关系
  • 字段

导致字段的类型通常被视为功能冗余,其中表中的不同行/记录可以具有相同的类型。例如,用户的性别/性别,或用户的访问权限或权限级别。

但是,如果此字段具有属性/属性,那么我们有一个新实体。在这种情况下,用户将涉及例如地址,其可以具有街道名称,门牌号等。或者,在您的情况下,如果特殊用户具有属性/属性,我们有一个“特殊用户”实体。这里的基数取决于用户可以拥有多少类型,并且考虑了问题上下文。

正如你所说用户“可以”,这意味着它“也不可能”。你可以:

  • 在Users实体中设置可为空的功能冗余字段,或
  • 设置实体“用户类型”并为其创建关系N-N “用户”。在这种情况下,您将拥有一个中间表 允许或不允许两个实体之间的连接。

在这两种方法中,您都可以毫不费力地添加新类型的用户。

然而,第三种情况称为分区,其中我们有实体的类型和子类型。在这种情况下,实体子类型继承其超级实体的字段。我相信这不是你的情况。

如果您有任何疑问,请发表评论,我会回答。