关系表的重复

时间:2012-02-24 15:29:33

标签: mysql database-design relational-database entity-relationship

在此question之后,我想我会选择实体关系建模来解决我的图片表问题,该表提供许多其他表格。

enter image description here

但是现在我有另一个更大的问题,因为每个上传/插入的图像,页面,用户等都有组/类别。

我拥有这些类别表的原因是允许管理员更改类别名称,并在需要时添加更多类别。

我使用类别表对每个表进行分类,例如

图片类别

category_id   category_name
1             Primary image
2             Secondary image
...
用户

(我在图片中复制了类别表格,只是为表格提供了不同的名称),

category_id   category_name
1             Primary user
2             Secondary user
...

并继续互相复制桌子!

它们看起来类似内部,当我需要添加新的类别表时非常多余。例如,contact list表的类别,

category_id   category_name
1             Primary contact
2             Secondary contact
3             School
4             government
...

如何解决此冗余问题?以及数据库图表的外观如何?

1 个答案:

答案 0 :(得分:0)

图片类别的名称通常与用户类别的名称不同,并且这两者的名称与页面的类别名称不同。这表明价值来自不同的领域。不同的域意味着不同的表。

为每种类别创建一个表。使用外键。

Redundant 是数据库设计中的技术术语。这并不意味着“这两张桌子看起来很相似”。这意味着表具有相同的值,并且这些值具有相同的含义

很明显,“主要图像”与“主要用户”的价值不同。但是,为了论证,我们说这两个表都有行(1,Primary)。这仍然不是多余的,因为这两个值具有不同的含义。在一种情况下,这意味着用它标记的任何图像都是主图像。在另一种情况下,这意味着无论用户被标记为什么,都是主用户。图像不是用户。不同的含义。