gpt4 book ai didi

Mysql 一张中间表多个相似表

转载 作者:行者123 更新时间:2023-11-29 11:00:44 25 4
gpt4 key购买 nike

我有一个名为类别的表。有一些表与类别表相关。例如,用户有类别,帖子有类别等。每个人都必须有自己的中间表来与类别表相关。 (例如:一篇文章有​​很多类别)

现在有两种不同的方法:

第一个:每个表(如用户、帖子...)都有自己的与category表相关的中间表。

第二个:所有表都有一个中间表,由名为 type 的列分隔(type 可以具有以下值:user发布等)。 (这里没有外键,因为外键是虚拟的)

哪个更好?有什么想法吗?

最佳答案

当您有不同的实体集(例如 UserPost)而不是高级类型的子类型时,我建议使用第一种方法 - 制作单独的关系表。这样做的原因是要严格遵守逻辑关系的基本概念,这要求每个组件/角色都有一个域。

从长远来看,这将显着简化查询和一致性。如果将不同的 ID 值集混合到同一列中,则会阻止您使用唯一约束和外键约束来确保完整性,并且您的查询将需要条件逻辑来处理不同的情况。

当您拥有更高类型的子集时 - 例如 CustomerEmployee,它们都是 Person 的子集,理想的情况是创建父类(super class)型表,然后在父类(super class)型上创建关系。这在设计阶段比在数据库填充数据之后要容易得多。

关于Mysql 一张中间表多个相似表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42325574/

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