【问题标题】:Relationship Model between Three Tables in a Fourth Table [duplicate]第四表中三个表之间的关系模型[重复]
【发布时间】:2019-08-01 08:24:53
【问题描述】:

所以我有两张桌子——Student 桌子和Staff 桌子,我还有一张Item 桌子,计划是让学生或教职员工保管一个物品,换句话说,为了一个有监护人(学生或工作人员)的物品。所以我创建了一个新表——Item_Custodian。我如何建模一种关系,使我的Item_Custodian 表可以保存有关项目的信息,并且它是学生或工作人员的保管人。欢迎提出建议、提示等。谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    1. 它在表之间创建物理关系
    2. 只有一个null 列不会使表变得稀疏

    【讨论】:

    • 水晶般清晰的描述,除了您喜欢第一种方法的原因外,我没有更改学生或教职员工表的权限(在团队中工作)。所以,第一种方法会很顺利。谢谢
    猜你喜欢
    • 2021-01-24
    • 1970-01-01
    • 2017-03-31
    • 2017-07-18
    • 2012-07-11
    • 2019-11-13
    • 2013-07-01
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多