Database 子类型/超类型关系:如何满足这些要求
我正在努力为DB建模以满足某些需求Database 子类型/超类型关系:如何满足这些要求,database,relational-database,database-schema,database-design,Database,Relational Database,Database Schema,Database Design,我正在努力为DB建模以满足某些需求 有两个主要实体。一个被称为团队,想想一个企业或组织。另一个是个人 团队也可以由个人组成(团队联系人) 这是一个会员必需的站点(即必须成为会员并登录该站点才能执行任何操作) TeamContacts将只是一个内部目录,他们将无权访问该网站,当然,除非他们是成员,然后将有这样的特权 被归类为TeamContacts的个人可能是网站的成员,也可能不是网站的成员。这是我主要关心的问题如果团队联系人同时也是成员,则很难(有时是不可能)担心,反之亦然。成员资格可能会失效
- 有两个主要实体。一个被称为团队,想想一个企业或组织。另一个是个人李>
- 团队也可以由个人组成(团队联系人)
- 这是一个会员必需的站点(即必须成为会员并登录该站点才能执行任何操作)
- TeamContacts将只是一个内部目录,他们将无权访问该网站,当然,除非他们是成员,然后将有这样的特权李>
- 被归类为TeamContacts的个人可能是网站的成员,也可能不是网站的成员。这是我主要关心的问题如果团队联系人同时也是成员,则很难(有时是不可能)担心,反之亦然。成员资格可能会失效,团队联系人可能会在团队之间流动。将保留成员的历史记录,但不会保留跟踪团队之间团队联系人可能移动的历史记录
- 成员和团队联系人之间唯一可以共享的属性(包括存在于团队级别的属性)是FirstName和LastName
乍一看,Ex1似乎是表示这两个需求的唯一图表
- 每个团队联系人都是一个人
- 有些人是会员
你可以考虑另一个未表达但共同的要求——一个人可以一次只接触一个团队。(这可能不适用于你的特殊情况。我说不出来。)
你说,“团队也可以由个人组成。”如果团队也可以由个人组成,那么团队还可以由什么组成?@Catcall最简单的方式是企业(团队)和员工(团队联系人)。从这个意义上讲,企业绝对不是个人(成员或团队联系人)。这回答了你的问题吗?不完全是。团队联系人可以是除个人以外的任何人吗?@Catcall团队联系人只能是个人。感谢您的反馈。我最初使用了Ex1的一个变体,区别在于我将Person子类型列为Exclusive。这就是我质疑的原因。我改为“包容”,允许一个人成为团队联系人和成员。我只是想确保不要强制要求TeamContact必须首先成为成员,这个模型允许这种灵活性吗?虽然我知道会有DUP,但我不知道如何避免。虽然我没有列出只属于一个团队的联系人,但模型没有涵盖这一点,因为团队之间没有M:M::TeamContact?Ex1不要求一个人在成为团队联系人之前成为成员。而且,duh,它不允许一个人同时成为多个团队的团队联系人。(我只能说咖啡因不足。)不管你是不是咖啡因,你是这个网站上的一个很好的信息来源,我很感激。我希望你能看到这个问题。谢谢