数据库设计:我应该在表或新表中使用约束

j40*_*j40 4 sql database-design

我继承了一个庞大的现有数据库,我想知道我是否应该重构它,因为95%的查询需要加入至少4个表.

DB有5个表,只有一个ID和Name列,少于20行.我假设作者这样做,所以他可以更改那里的名称,而不是在其他表中更改它们,但其中许多表只在另一个表中引用.我应该将这些小的2列表重构为更大的表并向列添加约束,以便用户不能输入错误的名称而不是具有单独的表吗?

Pau*_*sik 8

抵制那种冲动.根据您的描述,我可以推断出现有设计是可靠的,并且可能已经很好地规范化了.您的重构实际上可能会撤消一个良好的数据库结构.

如果您在查询中编写了大量连接而烦恼,我建议您创建视图以减轻样板.

......作者这样做了,所以他可以改变那里的名字而不是在其他表中改变它们......

这是良好设计的证据,正是您应该在规范化数据库中努力的目标.

  • +1提及意见 - 他们是如此未得到充分利用:) (2认同)