一个或单独的MariaDB表中的价格

时间:2016-06-01 15:01:39

标签: mysql relational-database mariadb

我正在使用MariaDB上的关系数据库处理Web应用程序,我对如何存储产品价格存有疑问。

我有产品,每个产品来自不同的类别(玩具,玩偶,电子游戏),它们都存储在不同的表格中。仅与自身相关而不与其他表相关的属性也存储在每个类别表中。

除此之外,一些产品共享一些功能。例如,某些产品是电气产品,因此这些产品有一个electrical_features表,我只是在中间使用一个表,将类别表连接到electrical_features,创建1:N - > N:1的关系。

现在,我存储了三个不同的价格。 original_pricediscount_pricediscount_enddate。我正在考虑将它直接存储到类别表中,但只是正确地思考它,仅仅为价格创建一个表并将其连接到其他表就像我用于{{1表?

我希望我能正确解释自己。你对此有何看法?

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