使用多对多关系还是多列?

问题描述 投票:0回答:1

我有一个产品,可以属于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
database database-design
1个回答
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

将所有类别列的默认值保持为零。

© www.soinside.com 2019 - 2024. All rights reserved.