我很难确定何时在数据库设计中使用一对一关系,或者是否有必要使用它。
如果您可以仅选择查询所需的列,那么是否有必要将表拆分为一对一的关系?我想更新大型表对性能的影响比较大,而且我确定这取决于表在某些操作(读/写)方面的使用情况。
因此,在设计数据库模式时,您如何考虑一对一关系?您使用什么标准来确定是否需要一个,并且与不使用一个相比的好处是什么?
我很难确定何时在数据库设计中使用一对一关系,或者是否有必要使用它。
如果您可以仅选择查询所需的列,那么是否有必要将表拆分为一对一的关系?我想更新大型表对性能的影响比较大,而且我确定这取决于表在某些操作(读/写)方面的使用情况。
因此,在设计数据库模式时,您如何考虑一对一关系?您使用什么标准来确定是否需要一个,并且与不使用一个相比的好处是什么?
从逻辑角度来看,1:1的关系应该总是合并到一个单独的表中。
另一方面,对于这样的"垂直分区"或“行拆分”,可能存在物理考虑因素,特别是如果您知道某些列将比其他列更频繁地访问或以不同的模式访问,例如:
职责分离和数据库表抽象化。
如果我有一个用户,并为每个用户设计了一个地址系统,但随后我更改了该系统,则只需向Address表中添加新记录即可,而不是添加全新的表并迁移数据。
当前,如果您想要一个人员记录,并且每个人都有一个确切的地址记录,则可以在Person表和Address表之间建立一对一的关系,或者您只需在Person表中添加地址列。
将来,如果您决定允许一个人拥有多个地址,则在一对一关系方案中无需更改数据库结构,只需更改处理返回的数据方式。然而,在单表结构中,您需要创建一个新表并将地址数据迁移到新表中,以创建最佳实践的一对多关系数据库结构。
过去项目的几个样本: