'normalizing' 数据库提示
Tips while 'normalizing' databases
如果有人用任何语言写 我应该如何在数据库和实体 类 中查找数据库规范化错误,我将不胜感激。
我只是想知道什么是最重要的和我应该在哪里寻找类中可能的错误 - 在 DAO、BEAN 或任何地方。我应该考虑什么 - 任何约定、方案等?
对于任何答案,提前致谢! :)
我想您已经阅读了一些关于范式的内容,例如在 wikipedia 上。那我猜你知道一些事情,但你不确定为什么要那样做或者什么是真正重要的。
例如,如果您有一个包含人与人之间关系的 table,它不应包含姓名,而应包含 ID。如果你有patients
的 table,其中有列 father_name
和 mother_name
,这是一个非规范化 table 导致问题的示例。
假设母亲更改了她的名字 - 从这一刻起,您的数据库处于不一致状态。您决定在此更改中添加一些 cascade/trigger 并且您遇到了更糟糕的问题:您意识到几个人可以有相同的名字。
这基本上是使用 ID 作为键的主要原因,而不是某些不是唯一标识符的列。还有很多东西要学,我希望有人为您提供 link 一些教程,因为这不是真正的 Q/A 东西。
规范化 table 的另一个很好的理由是稀疏 tables - tables 其中有些列很少包含除 null 以外的任何内容。例如,某些设备有四种类型,每种都有不同的属性,其他类型的属性为空。在这种情况下,建议创建一个 table 来保存每种设备类型的特定属性(即使它只是 {0,1}:1 关系)。
如果有人用任何语言写 我应该如何在数据库和实体 类 中查找数据库规范化错误,我将不胜感激。
我只是想知道什么是最重要的和我应该在哪里寻找类中可能的错误 - 在 DAO、BEAN 或任何地方。我应该考虑什么 - 任何约定、方案等?
对于任何答案,提前致谢! :)
我想您已经阅读了一些关于范式的内容,例如在 wikipedia 上。那我猜你知道一些事情,但你不确定为什么要那样做或者什么是真正重要的。
例如,如果您有一个包含人与人之间关系的 table,它不应包含姓名,而应包含 ID。如果你有patients
的 table,其中有列 father_name
和 mother_name
,这是一个非规范化 table 导致问题的示例。
假设母亲更改了她的名字 - 从这一刻起,您的数据库处于不一致状态。您决定在此更改中添加一些 cascade/trigger 并且您遇到了更糟糕的问题:您意识到几个人可以有相同的名字。
这基本上是使用 ID 作为键的主要原因,而不是某些不是唯一标识符的列。还有很多东西要学,我希望有人为您提供 link 一些教程,因为这不是真正的 Q/A 东西。
规范化 table 的另一个很好的理由是稀疏 tables - tables 其中有些列很少包含除 null 以外的任何内容。例如,某些设备有四种类型,每种都有不同的属性,其他类型的属性为空。在这种情况下,建议创建一个 table 来保存每种设备类型的特定属性(即使它只是 {0,1}:1 关系)。