'normalizing' 数据库提示

Tips while 'normalizing' databases

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

我只是想知道什么是最重要的我应该在哪里寻找类中可能的错误 - 在 DAO、BEAN 或任何地方。我应该考虑什么 - 任何约定、方案等?

对于任何答案,提前致谢! :)

我想您已经阅读了一些关于范式的内容,例如在 wikipedia 上。那我猜你知道一些事情,但你不确定为什么要那样做或者什么是真正重要的。

例如,如果您有一个包含人与人之间关系的 table,它不应包含姓名,而应包含 ID。如果你有patients 的 table,其中有列 father_namemother_name,这是一个非规范化 table 导致问题的示例。

假设母亲更改了她的名字 - 从这一刻起,您的数据库处于不一致状态。您决定在此更改中添加一些 cascade/trigger 并且您遇到了更糟糕的问题:您意识到几个人可以有相同的名字。

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

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