使用多对多关系还是多列?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用多对多关系还是多列?相关的知识,希望对你有一定的参考价值。
我有一个产品,可以属于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
答案
正如你的建议:
一种产品,只能属于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
将所有类别列的默认值保持为零。
以上是关于使用多对多关系还是多列?的主要内容,如果未能解决你的问题,请参考以下文章