数据库:类别特征的设计模式

Database: A design pattern for category features

我工作的系统有这些 table:

products , categories , features

用户想要动态添加一些功能,例如 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,然后在类别中我们选择该特征并将其添加到类别 table。然后我们访问该类别中的所有产品。

但是有一个问题。因为当两个类别想要有color特征时,我们必须在类别table.

中重复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
                                            ...

当我们输入一个类别时,我们会为该类别创建一个 table。例如,具有 color 功能的笔记本电脑类别。我们创建一个名为 laptop_feature 的 table,其特征在 .

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

新建一个table

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

这将使您 link 多个类别的共同特征。 - 不要为每个类别制作一个 table :)