正常化时的提示'数据库

时间:2015-02-02 10:45:31

标签: database normalization

如果有人在数据库和任何语言的实体类中写了我应该如何查找数据库规范化错误,我将不胜感激。

我只想知道什么是最重要的我应该在哪里寻找可能的错误在课程中 - 在DAO,BEANS或任何地方。我应该考虑什么 - 任何惯例,计划等?

如有任何回答,请提前致谢! :)

1 个答案:

答案 0 :(得分:1)

我猜您已经阅读了有关正常表格的内容,例如:在wikipedia。然后我想你知道一些事情,但你不确定为什么要这样做或什么是真正重要的。

例如,如果您有一个包含人员之间关系的表,则它不应包含名称,只能包含ID。如果您有例如一个patients表,其中有father_name列和mother_name列,这是非规范化表格导致问题的一个示例。

让我们说母亲改变了她的名字 - 从现在开始,你的数据库处于不一致的状态。你决定在这个变化上添加一些级联/触发器,你会遇到更糟糕的问题:你意识到有几个人可以拥有相同的名字。

这基本上是使用ID作为键的主要原因,而不是某些不是唯一标识符的列。还有很多东西需要学习,我希望有人为你提供一些教程的链接,因为这不是真正的Q / A东西。

规范化表的另一个好理由是稀疏表 - 表中某些列很少包含除null之外的任何内容。例如,有一些设备有四种类型,每种设备都有不同的属性,在其他类型上保留为空。在这种情况下,建议创建一个包含每种设备类型的特定属性的表(即使它只是{0,1}:1关系)。