数据库冗余字段的好处与设计。

冗余字段,虽然在标准情况下,应该是没有冗余的。

但是在实际中,如果表与表的关系,需要关联太多。那么适当的冗余一些字段是非常好的。

举个例子:

一个人有多个简历,userid 对应多个 resume id

一个公司,有多个职位,一个 company id 对应 多个 post id

那么问题来了,在关系表:简历投递 “delivery” 中,正常应该是这样:

一个  简历id  对应一个 职位id

那么表中,应该有  rid  和  pid

看起来很标准的关系,实际用起来非常不方便,例如:

我是一个招聘公司,我需要找出所有投递到我公司的简历

(一个很基本的需求)

那么至少,你得关联两张表,也就是 :简历投递表( pid ) + 职位表 ( pid , cid )

如果使用冗余字段存储,可以这么设计:在简历投递表,记录 pid 和 cid,也就是在插入投递信息时,就把 cid 记录下来,这样可以不用关联职位表。

这里只是一个两表关联,对于3表关联以上,冗余存储就会更加实用。

综上,我们可以发现,在一些表中(特别是关系表中),冗余字段是有一定好处的,但这里所说的冗余是:有设计性的字段冗余,如果没有必要的冗余就真的是多余。

(如果关系会变动,则容易出问题,比如投递时把 cid 记录下来不关联职位表,而 pid 和 cid 如果可以发生转移,则会带来相当大的麻烦,因此要考虑到是否有主体转换问题)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注