gpt4 book ai didi

database-design - ERD 关系 - 将 2 个可选实体连接到 1 个实体

转载 作者:行者123 更新时间:2023-12-01 12:43:11 24 4
gpt4 key购买 nike

我有学生、员工和讨论这 3 个实体。
他们的关系是这样的:1个学生可以发表多个讨论;1个工作人员可以发表多个讨论;但是 1 个讨论只能由学生或工作人员发布。将外键 studentID 和 staffID 都驻留在讨论实体中是否可以?但这样做可能会使其中的每条记录在这 2 个属性中的任何一个中都具有 1 个空值。 enter image description here

最佳答案

正在申请 Second Normal Form (2NF) 将是一个指南:

第一种方法:为人员创建基表:
您可能有一个 People 表来存储人们的共享属性。 Student 和 Staff 将是该表的子表,在 Discussion 表上设置 Peoples 表外键将解决问题。

第二种方法:有一个用于讨论的基表:
为了减少冗余,您可能有一个 Discussion-Base 表,这将是另外两个实体的基表:Staff-DiscussionStudent-Discussion 表。
Discussion-Base 表将包含共享属性。
当 Staff-Discussion 和 Student-Discussion 表的属性不同时,该解决方案值得赞赏。
如果它们相同并且唯一的区别是可选的外键,那么你提到的设计是有效的。
希望这会有所帮助。

关于database-design - ERD 关系 - 将 2 个可选实体连接到 1 个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17627620/

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