所以我有两个表 - Student
表和Staff
表,我也有一个Item
表,计划是为学生或工作人员保管一个项目,换另一种方式,一个项目有一个保管人(学生或工作人员) )。所以我创建了一个新表 - Item_Custodian
。如何建立一种关系模型,使我的Item_Custodian
表能够保存有关物品的信息,并且它的保管人可以是学生或工作人员。欢迎提出建议,提示等。谢谢
我会分享三种处理这种关系的方法:
nullable foreign keys
,导致两个物理关系,其中一个始终是Item_Custodian
。Staff
和Student
定义两个Ids范围。然后,在null
中只创建一个列,并使用两个表ID中的任何一个对其进行初始化,从而产生逻辑关系。Student
中定义两列作为逻辑外键,另一列作为第一列的类型(即Staff
或Item_Custodian
)。在您只有两个保管人的情况下,我个人更喜欢第一种方法,原因有两个:
Item_Custodian
列不会使表稀疏