gpt4 book ai didi

sql - 产品和类别表。与引用不同类别实体的产品和类别属性建立关系

转载 作者:行者123 更新时间:2023-12-05 05:26:58 25 4
gpt4 key购买 nike

我正在尝试创建一个电子商务网站,一种基本的阿里巴巴网站。最终目标是创建 n 个彼此不严格相关的产品类别(即鞋子和酒)。

我的主要问题是找出一种方法来处理与产品表相关的类别表/实体。

产品表将具有通用属性,而 productCatagoryEntity 中的属性将特定于类别。

我如何创建一个足够灵活的 ERD 来实现这个目标?

我考虑过创建一个 product_TO_productCategoryEntity 表来链接产品表和 productCategoryEntity 表,当产品链接到类别时,与类别表相关的 product_TO_productCategoryEntity 外键属性将具有非空值,而对于类别与产品无关的 FK 将为空。

很明显,我应该在 product_TO_productCategoryEntity 表中列出所有 n 个类别表,这种模型可能导致难以维护。

我正朝着正确的方向前进吗?

请提供我最终可以学习的任何主题、模式、书籍或引用资料。

enter image description here

@Dan Bracuk 的回答,我根据他的建议包含了一个 ERD:

enter image description here

最佳答案

您提供的设计存在严重缺陷。每次添加新类别时,您都必须重新设计数据库。最好通过简单地添加记录来实现。我建议这种设计。

Table Product 将具有 ProductID、名称,除此之外别无其他。

表类别将有一个类别 ID、名称,除此之外别无其他。

表属性将具有 AttributeID、类型和值。例如,类型是颜色,值是蓝色。

然后您将不得不在表中建立多对多关系。一个在产品和类别之间,另一个在产品和属性之间。

要真正规范此设计,您可以为 AttributeTypes 准备一个单独的表,并在 Attribute 表中有一个外键引用。

编辑从这里开始

上面的模式会导致属性表有这样的记录:

1|colour|blue
2|colour|red
3|size|small
4|size|medium

由于重复的字符串颜色和大小,因此未标准化。要对此进行规范化,您将拥有一个包含字段 AttributeTypeId 和 Type Records 的 AttributeType 表,如下所示:

1|colour
2|size

您的属性记录将变成这样:

1|1|blue
2|1|red
3|1|small
4|1|medium

我实际上会这样做。我只是对原来的答案很懒惰。

关于sql - 产品和类别表。与引用不同类别实体的产品和类别属性建立关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22867468/

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