我有一个产品,可以属于5个可能类别中的一个(或多个)。
类别的数量/名称/结构不会改变
我是否应该使用多对多关系并在类别表中插入5条记录,添加连接表并添加外键等?或者只是在产品表中添加5个字段?我觉得后者似乎更有效率,但违背了规范化的原则。
即
Product:
- id
- name
- is_cat_a : bool
- is_cat_b : bool
- is_cat_c : bool
- is_cat_d : bool
- is_cat_e : bool
或
Product
- id
- name
Category
- id
- name
ProductCategories
- product_id
- category_id
答案 0 :(得分:0)
如你所知:
产品,只能属于5个可能类别中的一个(或多个)。
然后,在我看来,创建两个表:
**1. Category**
Id int,
Name varchar,
IsActive bool and other regular columns
**2. Product**
- id int,
- name varchar,
- cat_a : int,
- cat_b : int,
- cat_c : int,
- cat_d : int,
- cat_e : int
将所有类别列的默认值保持为零。