嗨,我想知道这些数据库设计中哪一个更好:
我有购物数据库,它有两个表:Categories
和Brands
。这两个表都包含以下列:name
,description
和image_url
。
那么保留重复列是否可以?或者我应该创建一个存储这些信息的表吗?
为了更好地将其可视化,这是一张图表
多余的
| CATEGORIES | | BRANDS |
| - name | | - name |
| - description | | - description |
| - image_url | | - image_url |
或添加新表?
| CATEGORIES | | INFORMATIONS | | BRANDS |
| |--->| - name |<-----| |
| - info_id | | - description | | - info_id |
| - image_url |
由于
答案 0 :(得分:5)
在这种情况下,它真的不是相同的信息。它是category_name,category_description,brand_name和brand_description。
创建一个表来保存关于很多事情的一般信息是一个坏主意。
当涉及到(de)规范化的讨论时,它通常被认为是一种更好的设计来规范化数据,我将从这样的设计开始。随着数据的不断发展和发展,可能需要对某些表进行反规范化,因为数据检索可能会以存储空间为代价,并且会降低数据一致性的风险。