数据库设计 - 冗余比增加更多关系更好吗?

时间:2013-07-23 06:50:29

标签: mysql database-design

嗨,我想知道这些数据库设计中哪一个更好:

我有购物数据库,它有两个表:CategoriesBrands。这两个表都包含以下列:namedescriptionimage_url

那么保留重复列是否可以?或者我应该创建一个存储这些信息的表吗?

为了更好地将其可视化,这是一张图表

多余的

| CATEGORIES    |    | BRANDS        | 
| - name        |    | - name        |
| - description |    | - description |
| - image_url   |    | - image_url   |

或添加新表?

| CATEGORIES    |    | INFORMATIONS  |      | BRANDS        | 
|               |--->| - name        |<-----|               |
| - info_id     |    | - description |      | - info_id     |
                     | - image_url   |

由于

1 个答案:

答案 0 :(得分:5)

在这种情况下,它真的不是相同的信息。它是category_name,category_description,brand_name和brand_description。

创建一个表来保存关于很多事情的一般信息是一个坏主意。

当涉及到(de)规范化的讨论时,它通常被认为是一种更好的设计来规范化数据,我将从这样的设计开始。随着数据的不断发展和发展,可能需要对某些表进行反规范化,因为数据检索可能会以存储空间为代价,并且会降低数据一致性的风险。