数据库设计:OR关系

时间:2010-05-24 06:27:02

标签: database database-design

我有一个包含“用户”表的数据库,其中包含有关我的用户的数据。每个用户都要链接到公司或大学。我希望有两个单独的表“学院”和“公司”,每个表都有一个字段“ID”。那么如何将users表中的每条记录链接到公司或大学?

基本的是我希望在数据库中建立“OR”关系。

3 个答案:

答案 0 :(得分:6)

您可以使用子类型/超类型关系。保留组织表中的所有常用字段。 大学公司表仅包含特定于这些实体的字段。

user_organization

答案 1 :(得分:2)

您可以使用“机构”或“组织”查找表,其结构类似于

InstitutionId[PK], InstitutionType, LookupKey

其中LookupKey是公司或学院的PK。

或者,

InstitutionId[PK], CompanyId[FK], CollegeId[FK]

在这两种情况下,您都会从用户链接到机构,然后链接到公司和/或学院。

我个人更喜欢第二种选择,因为它允许您轻松验证FK关系,并允许(如果适用)用户成为公司和/或大学的成员。

答案 2 :(得分:1)

我会创建关系表。 UserCollege和UserCompany。这样,您甚至可以在将来需要时将用户链接到两者。如果不是,您只需在其中一个

上创建一个关系记录