数据库:类别特征的设计模式
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 :)
我工作的系统有这些 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 :)