gpt4 book ai didi

sql - 多对多表设计问题

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:49 26 4
gpt4 key购买 nike

最初我的数据库中有两个表,[Property] 和 [Employee]。

每个员工都可以有一个“Home Property”,因此员工表有一个 HomePropertyID FK 字段到 Property。

后来我需要模拟这样一种情况,即尽管只有一个“家庭属性(property)”,但该员工确实在多个属性(property)中工作或负责多个属性(property)。

所以我创建了一个 [Employee2Property] 表,其中包含 EmployeeID 和 PropertyID FK 字段来模拟这种多对多关系。

现在我发现我需要在员工和属性(property)之间创建其他多对多关系。例如,如果有多名员工担任属性(property)经理或多名员工在属性(property)等处执行维护工作。

我的问题是:

  1. 我应该为这些情况中的每一种创建单独的多对多表,还是应该再创建一个像 [PropertyAssociatonType] 这样的表,列出员工可以与属性(property)建立的关联类型,然后只添加一个 FK 字段到[Employee2Property] 比如 PropertyAssociationTypeID 说明什么是关联?我很好奇利弊,或者是否有其他更好的方法。
  2. 我是不是很傻,这样做全错了?

感谢您的任何建议:)

最佳答案

这是一个非常有效的问题。答案是:这取决于

以下事项建议使用单个“类型化”M:N 关系:

  • 您经常希望处理所有类型的员工-属性(property)关系
  • 关联的数量一直在变化,即发明了新的类型。
  • 员工属性(property)关系有时会改变其类型。

如果这些陈述错误多于正确,您最好使用单独的关系。

关于sql - 多对多表设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com