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

时间:2019-03-11 03:20:33

标签: mysql sql database entity-relationship data-modeling

因此,我有两个表-list_of_nums = [] loop = True while loop == True: try: num = int(input("Enter Integer: ")) except ValueError: num = "invalid" if num == "invalid": print("\nPlease Print A Valid Integer!\n"); elif num != 0: list_of_nums.append(num) else: loop = False print("\nSum of Inputed Integers: " + str(sum(list_of_nums)) + "\n") 表和Student表,还有一个Staff表,该计划是供学生或教职工保管物品的,以另一种方式,使某个物料具有托管人(学生或教职员)。因此,我创建了一个新表-Item。我如何建模一个关系,该关系将使我的Item_Custodian表包含有关某项的信息,并且该项是托管人,无论是学生还是工作人员。欢迎提出建议,技巧等。谢谢

1 个答案:

答案 0 :(得分:2)

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

  • 方法1 :在中定义两个单独的nullable foreign keys Item_Custodian一个引用Staff,另一个引用 Student导致两种物理关系,其中一种是 始终null
  • 方法2 :为StudentStaff不会过度努力。然后,仅在其中创建一列 Item_Custodian并使用两个表ID之一对其进行初始化 导致逻辑关系。
  • 方法3 :在Item_Custodian中定义两列为逻辑外键,另一列为第一列的类型(即StaffType或{{1} }。

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

  1. 它在表之间建立物理关系
  2. 只有一个StudentType列不会使表稀疏