gpt4 book ai didi

mysql - 创建组合或分离的关系表? (在 MySQL 中)

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:06 25 4
gpt4 key购买 nike

我正在创建一个 MySQL 数据库,但我不确定如何创建关系表以获得最佳性能。

我有轮船和汽车表。每辆车或每艘船都会有几张照片。我想我有两个选择。

1-) 我将创建一个上传表 -> id, parent_table, parent_id ...

2-) 我将创建两个表,如 upload_ship 和 upload_car -> id, parent_id

哪个对性能更好?一般关系表是分表还是合表?

最佳答案

从逻辑上讲,它们是单独的表,因为约束(在本例中为外键)不同。如果合适,您稍后可以将它们组合到一个 View 中。

从物理上讲,默认情况下不会有太大的性能差异,但是如果您的访问模式将从中受益,则拥有单独的表可以让您灵活地将它们放在单独的磁盘上。


id, parent_table, parent_id

永远不要那样做。

您实质上是在阻止 DBMS 为您强制执行参照完整性。在 concurrent 环境中,尝试从触发器或应用程序代码中强制执行它实际上并不容易,并且生成的代码可能具有微妙的竞争条件和/或不如“ native ” FOREIGN KEY 执行得好。


Generally, must relational tables be separated or combined?

这是一个很大的话题。我建议阅读有关数据库建模和规范化的内容。你可能会发现 ERwin Methods Guide为此很有趣 - 它是关于特定产品的(一种称为 ERwin 的建模工具),但它解释的概念是通用的。

关于mysql - 创建组合或分离的关系表? (在 MySQL 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311577/

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