数据库:类别功能的设计模式

时间:2015-04-28 12:24:33

标签: mysql database design-patterns

我为一个有这些表的系统工作:

productscategoriesfeatures

用户希望动态添加color等功能。

以下哪种方式属实?

第一个:

Product             category                feature
----------------    ----------------        ----------------------------
pro_id (PK)         cat_id (PK)             feature_id (PK)
pro_name            cat_name                fea_name
cat_id (FK)         feature_id (FK)

我们添加了color这样的功能,然后在类别中我们选择该功能并将其添加到类别表中。然后我们访问该类别中的所有产品。

但是有一个太过分了。因为当两个类别想要拥有color功能时,我们必须在类别表中重复feature_id列。

第二个:

Product             category                name_feature
----------------    ----------------        ----------------------------
pro_id (PK)         cat_id (PK)             name_feature_id (PK)
pro_name            cat_name                cat_id (FK)
cat_id (FK)                                 color
                                            ...

当我们输入一个类别时,我们会为该类别创建一个表。例如具有color功能的笔记本电脑类别。我们创建了一个名为laptop_feature的表,其中包含

中的功能

哪种方式好? (类别有限)

1 个答案:

答案 0 :(得分:1)

创建一个新表

feature_category
--------------------
feature_id (FK)
cat_id (FK)

这可以让您将常用功能链接到多个类别。 - 不要为每个类别制作一张桌子:)