gpt4 book ai didi

mysql - 关系数据库设计问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:01 25 4
gpt4 key购买 nike

在设计关系数据库时,如果我所做的设计可以变得更简单,我就会想到这个问题。该设计由 4 个表组成:(简化)

  • 地点
  • 办公室
  • 学校
  • 学校组

ERDPK = 主键,FK = 外键

假设我们想要获取有关某个位置的详细信息。如果该位置是一所学校,我们希望看到名称、学生数量以及所属学校组的名称。如果是办公室,我们只想查看办公室的名称。使用当前的设计,这是不可能在 1 个查询中完成的(据我所知)。

问题:有没有更好的方法来设计这个数据库,以便我可以在 1 个查询中获得有关某个位置的所需详细信息。

虽然可能有一种方法可以在一个查询中获取这些详细信息,但我对增强数据库设计更感兴趣。

提前致谢,纳尔菲

答案:我终于找到了描述我的问题的术语:多态关联。特别是this question给了我一个很好的答案。

最佳答案

你可以试试这样的东西

SELECT location.*,school.*,office.*
FROM location
LEFT JOIN school ON school.locationID=location.locationID
LEFT JOIN office ON office.locationID=location.locationID

结果,如果有办公室,学校字段的值为 NULL,反之亦然。但是你必须在你的应用程序中检查它并在那里做出决定 - 数据库向你发送所有数据。

关于mysql - 关系数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905104/

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