我正在使用MariaDB上的关系数据库处理Web应用程序,我对如何存储产品价格存有疑问。
我有产品,每个产品来自不同的类别(玩具,玩偶,电子游戏),它们都存储在不同的表格中。仅与自身相关而不与其他表相关的属性也存储在每个类别表中。
除此之外,一些产品共享一些功能。例如,某些产品是电气产品,因此这些产品有一个electrical_features
表,我只是在中间使用一个表,将类别表连接到electrical_features
,创建1:N - > N:1的关系。
现在,我存储了三个不同的价格。 original_price
,discount_price
,discount_enddate
。我正在考虑将它直接存储到类别表中,但只是正确地思考它,仅仅为价格创建一个表并将其连接到其他表就像我用于{{1表?
我希望我能正确解释自己。你对此有何看法?
答案 0 :(得分:1)
我有产品,每个产品来自不同的类别(玩具,玩偶,电子游戏),它们都存储在不同的表格中。
没有。我建议你有一个单独的产品表,其列中包含productId
和它所属的categoryId
,例如。
productId | categoryId | productName | categoryName | price
1 | 1 | Monopoly | toys | 24.99
2 | 2 | Barbie | dolls | 14.95
3 | 3 | Warcraft | video games | 31.50
我只包含一个价格列,但您可以将其扩展为包含折扣以及您想要的任何其他内容。
至于功能,由于每个产品可以具有可变数量的功能,并且可能有许多功能,因此将更多列添加到上表是没有意义的。而是创建一个新的features
表,该表将productId
与一个或多个要素相关联。您还可以为要素本身定义类别。
productId | featureId | featureCategory | fName | fcName
3 | 1 | 1 | video | electrical
3 | 2 | 1 | computer | electrical
3 | 3 | 2 | game | recreation