gpt4 book ai didi

mysql - 几乎或半空的列是否与另一个表相同或更好?如何编写快速或节省空间的sql?

转载 作者:行者123 更新时间:2023-11-29 15:36:31 24 4
gpt4 key购买 nike

我想知道如何在不同的数据库设计解决方案之间做出选择?

我想描述我的问题的最好方法是举一个例子。
假设我们要创建一个汽车数据库。每辆车都有许多我们想要保存的属性。每辆车都有很多属性,例如:

制作人、
模特、
颜色、
年龄、...

但这里也有一些只在子类别或一小群汽车中找到的属性,例如:
拉杆、
车顶行李架、
cargo 区、
四轮驱动、...

有些属性甚至可能只与不到 5% 的汽车相关。有不同的解决方案可以解决这个问题。
- 第一个是将所有内容转储到一张表中。当然归一化了! (下文未提及)

- 第二种解决方案是创建一个包含每辆车都有的属性的表。添加 CartoDrawbar ...表以在稀有属性和汽车之间建立 m:m 连接。

- 我能想到的第三种可能性是为 SUV、Notchback、卡车、紧凑型、皮卡等汽车组创建表格,以对具有相似属性的汽车进行分组。 (我的稀有属性并不是与此类似的最佳选择)。

- 最后一个想法是创建一个包含所有共享属性的表,并添加一个字符或文本列来填充所有特殊内容。

但哪个是最好的解决方案或最合适的解决方案?我是不是忘记了一件重要的事情?速度、文件大小或...方面是否存在差异需要考虑?或者一些何时选择这个或那个解决方案的阈值。我有一个个人最喜欢的,但我不想影响你,而且我对关系数据库和/或管理软件没有足够的知识来判断表的速度或文件大小。

最佳答案

没有“最佳”解决方案。事实上,大多数“稀有”列看起来更像旗帜 - 汽车有或没有四轮驱动,汽车有车顶行李架或没有。

我的建议是将它们放入一张具有适当类型的单独列的表中。

然后,如果您确实有可选功能,例如手动变速箱中的档位数量,那么您可以考虑如何实现一个列表。如今,大多数数据库都支持 JSON,这将是此类元素的自然选择。

关于mysql - 几乎或半空的列是否与另一个表相同或更好?如何编写快速或节省空间的sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58191964/

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