第四个Table中三个Table之间的关系模型

Relationship Model between Three Tables in a Fourth Table

所以我有两个table——Studenttable和Stafftable,我还有一个Itemtable,该计划是让学生或教职员工保管物品,换句话说,让物品有保管人(学生或教职员工)。所以我创建了一个新的 table -- Item_Custodian。我如何建立一种关系,使我的 Item_Custodian table 能够保存关于项目的信息,并且它是学生或员工的保管人。欢迎提出建议、提示等。谢谢

我将分享我所知道的三种处理此类关系的方法:

  • 方法一:定义两个独立的nullable foreign keys Item_Custodian 一个引用 Staff 一个引用 Student 导致两种物理关系,其中一种是 总是 null
  • 方法 2:为 Student 和定义两个 ID 范围 Staff 以不重叠的方式。然后,只创建一列 Item_Custodian 并使用两个 table ID 中的任何一个对其进行初始化 从而形成逻辑关系。
  • 方法3:在Item_Custodian中定义两列,一个作为逻辑外键,另一个作为第一列的类型(即StaffTypeStudentType)。

在您只有两个保管人的情况下,我个人更喜欢第一种方法,原因有两个:

  1. 它在 tables
  2. 之间建立物理关系
  3. 只有一个 null 列不会使 table 稀疏