gpt4 book ai didi

database-design - 需要有关数据库设计的帮助

转载 作者:行者123 更新时间:2023-12-02 07:13:07 26 4
gpt4 key购买 nike

假设我需要在我的产品表中存储 T 恤和牛仔裤。他们共享成本、价格、数量等列,但腰围(仅适用于牛仔裤)和尺码(仅适用于 T 恤)呢?我应该将它们全部放在一张表中还是单独的表中?如果我将它们放在一起,我将有很多空值,但如果我将它们分开,那么链接它们的最佳方式是什么?

非常感谢。

最佳答案

有几种方法可以解决这个问题。

您已经描述了一个,single-table inheritence (你有一堆空列用于不相关的属性)。

RPM1984 的答案建议 class-table inhertience ,其中共享数据进入主表,每个“类型”都有自己的额外属性表。

或者,你可以有 Entity/Attribute/Value ,正如亚历克斯和 postman 所建议的那样。

每种方法都有利有弊。最大的问题是 RDMBSes 很难对它们中的任何一个实现引用完整性。

在做出决定之前认真思考您的问题是值得的。 EAV 提供了最大的灵 active (您可以分配任意属性,永远不必更改架构),但您最终会在应用程序层进行大量处理。而且,您无法轻松获得包含所有属性的单个结果行。

如果我非常确定我知道我需要建模的每个“类型”,并且我不太可能需要在未来创建更多,我会选择类表继承。

通过类表继承,您可以使用简单的内部联接(select * from products inner join pants)按类型进行过滤,例如,将只选择裤子。

关于database-design - 需要有关数据库设计的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3748175/

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