小编典典

是否曾经有过使用数据库 1:1 关系有意义的时候?

all

前几天我在想规范化,我突然想到,我想不出数据库中应该存在 1:1 关系的时间。

  • Name:SSN? 我会把它们放在同一张桌子上。
  • PersonID:AddressID? 再次,同一张桌子。

我可以想出无数个 1:many 或 many:many 的例子(带有适当的中间表),但绝不是 1:1。

我错过了一些明显的东西吗?


阅读 41

收藏
2022-08-17

共1个答案

小编典典

1:1 关系通常表明您出于某种原因对较大的实体进行了分区。通常是因为物理模式中的性能原因,但如果预计大量数据同时“未知”(在这种情况下您有 1:0或
1:1,但仅此而已)。

作为逻辑分区的一个示例:您有关于员工的数据,但是当且仅当他们选择有健康保险时,需要收集更多的数据。我会将有关健康保险的人口统计数据保存在不同的表中,以便更轻松地进行安全分区,并避免在与保险无关的查询中拖拽这些数据。

物理分区的一个示例是托管在多个服务器上的相同数据。我可能会将健康保险人口统计数据保存在另一个州(例如,人力资源办公室所在的地方),并且主数据库可能只能通过链接服务器链接到它......避免将敏感数据复制到其他位置,但使其可用于(假设这里很少)需要它的查询。

每当 您的查询需要较大实体的一致子集时,物理分区就很有用。

2022-08-17