子类型/超类型关系:如何满足这些要求

时间:2011-04-01 15:03:10

标签: database relational-database database-schema database-design

我正在与自己斗争,试图建模数据库以满足某些要求。

  • 有两个主要实体。一个被称为团队,想到一个企业或组织。另一个是个人。
  • 团队也可以由个人(TeamContacts)
  • 组成
  • 这是会员所需的网站(即必须成为会员并登录网站以执行任何操作)
  • TeamContacts只是一个内部目录,他们无权访问该网站,除非他们当然是会员,然后才有这样的权限。
  • 归类为TeamContacts的个人可能是也可能不是该网站的成员。这是我的主要关注点。 如果TeamContact也是会员,则会非常困难,有时甚至不可能担心。会员资格可能会失效,TeamContacts可能会从团队变为团队。将保留会员的历史记录,但跟踪团队之间TeamContacts的可能移动的历史记录将不会。
  • 仅在成员和TeamContact之间共享的唯一属性(禁止存在于Party级别的属性)是FirstName和LastName。

以下是我提出的四种可能性。正如我所说,我真的不知道我应该朝哪个方向前进。可能是我的选择都不理想。我将不胜感激任何可以帮助解决这个问题的反馈。

由于

enter image description here

1 个答案:

答案 0 :(得分:2)

乍一看,看起来Ex1是表达这两个要求的唯一图表。

  • 每个团队联系人都是一个人。
  • 有些人是会员。

Ex2根本不是指成员。

Ex3似乎允许任何一方(包括球队)作为球队联系人。

Ex4明确允许任何一方(包括团队)成为团队联系人。

您可能会考虑另一个未表达但常见的要求 - 一个人一次只能成为一个团队的联系人。 (这可能不适用于您的具体情况。我不知道。)