嗨,我想知道这些数据库设计中哪一个更好:
我有购物数据库,它有两个表: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 |
感谢
在这种情况下,它实际上不是相同的信息。它是类别名称、类别描述、品牌名称和品牌描述。
创建一个表来保存关于许多事情的一般信息是个坏主意。
当谈到(去)归一化的讨论时,通常认为这是一种更好的数据归一化设计,我会从这样的设计开始。随着数据的发展和增长,可能有必要对一些表进行去规范化,因为数据检索可能会更快,但代价是存储空间和失去数据一致性的风险。