gpt4 book ai didi

mysql - 零售体育用品公司的数据库模型

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

我是一位专业设计师,已经完成了一些数据库。我希望就表配置中犯的任何重大错误以及PK和FK之间的关系提供一些反馈。

蓝色框表示将来自另一个数据库的数据。

Click here to see database design

Click here to see New Design更改了产品尺寸和颜色表

最佳答案

按照吉尔伯特·勒·布朗的描述,可以按如下所示进行扩展和提高效率:

答:每当您发现自己为代表可能的用户选择的项目添加列时,请考虑是否应该在新表中将它们实际建模为ROWS。这被称为“规范化”(不止如此,但是为此,它应该涵盖我想说的...),并且是正确进行数据库设计的关键。如果您无法正常归一化,您将遭受广泛的痛苦,并后悔。想象一下,您的一个供应商在上线数据库6个月后就推出了一种新颜色。您只需要重新编码数据访问例程,即可将该颜色添加到正在创建的任何前端演示文稿中。

B.您可能想将某些类别/子类别/类结构合并到一个或两个表中。尽管我不了解零售业务的情况下没有具体建议,但根据产品的不同,似乎有很多层次结构。从理论上讲,您实际上可以使用SINGLE表来解决这个问题:

**tblCategories**
CategoryID Int PK
ParentCategoryID Int FK on tblCategories CategoryID
CategoryName


ParentCategoryID> 0的记录是子类别。

我将尝试附加刚刚描述的图像(之前在SO上没有做过此操作)。注意事项:


我在SQL Server中工作,所以情况看起来与您有些不同。
在本示例中,我将模型简化了。但这确实说明了我正在描述的关系。
在为产品/类别建模时,可能还有其他更好的建议。我提出的概念可能很难直截了当地,但是利用递归关系来创建非常灵活/可扩展的表结构。




我认为您在正确的轨道上。但是,在规范化方面仍有(潜在)显着改善的地方。我之所以说是潜在的原因是因为我对运动服装业务,尺码等方面的了解不多。但是,一些观察:

答:我看到同一实体在几个不同的表格中表示,例如耐克,阿迪达斯等。虽然我知道一个供应商可能有多个不同的品牌,但是您的表格结构可以使这一点更加清楚。如果“耐克”是供应商,则耐克可能的品牌可能是耐克,匡威,无论耐克提供的其他品牌是什么。如果这是您的桌子所做的,那么请原谅。

B.您的服装尺码表可能具有进一步标准化的潜力,也可能没有。似乎很复杂,我再一次对那里表示的关系不了解。我确实看到了字段中数据的重复出现,这些字段可能更好地表示为其他表中的行。

C.我在B.中描述的一个例子是鞋码。可以更有效地将其标准化。请注意,我相当随意地将FK for GenderCategory放置在tblFootwear_Sizing_Index中,它可能属于tblFootwearSizes。同样,对制鞋业的了解还不够。但是,除了这些小问题之外,您还会发现以下安排更有效,更易于管理:



您模型中的其他领域可能有助于类似的重组。但是,正如我所说,由于我对您的行业缺乏了解,因此我很难看清。我仍然认为您可能想重新检查“类别”和“类”的多种风格。此外,您绝对应该为某些“类别/类表”(或任何表)找到一些更具描述性的名称。可以考虑使用“ ProductCategory”,“ GenderCategory”,“ FootwearCategory”等。另外,如果表名更容易理解(或者更重要的是,您现在的后继四年制),也不要太怕它。在您的代码中进行。现在键入可能会比较麻烦,但是上线6个月后,您正试图弄清为什么其中一个查询未按预期返回的情况,您会很高兴的。毕竟,您始终可以为通用表名称起别名。

我强烈建议您检查一些有关数据库规范化的信息,然后尝试将其应用于您的模型。从跳转中获取正确的后端数据库模型可能会破坏您的应用程序。这是我通过搜索“数据库规范化”获得的许多文章之一:

http://databases.about.com/od/specificproducts/a/3nf.htm

本文重点介绍第三范式(3NF),但提供了1NF和2NF的链接,它们是3NF的先决条件。

您应该始终在数据库设计中力求最小化3NF。

希望能有所帮助,我很想听听您在此方面的进展。

关于mysql - 零售体育用品公司的数据库模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020994/

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