gpt4 book ai didi

database - 结合两个一对一表的数据库设计

转载 作者:搜寻专家 更新时间:2023-10-30 20:50:31 24 4
gpt4 key购买 nike

我有一个遗留应用程序,其中包含具有 1 对 1 映射的下表

 customer (has already 40 columns)
customer_additional_attributes(has 20 columns)

我的问题:- 如果将 customercustomer_additional_attributes 表组合起来会不会更好,因为这样可以节省额外的连接或查询以获取数据来自 customer_additional_attributes ?

单表(如上述场景)但列数多有什么缺点吗?

最佳答案

您拥有的数据格式称为“垂直分区”。这是当一个实体的行被拆分到多个表时。在规范化结构中,这是有问题的,因为行的插入(例如)不一定是原子的——它们会影响两个表。

但是这样做是有充分理由的。最明显的是当行太宽时。如果列太宽,它们根本无法放在一个表中,因此它们分布在多个表中。

同样,如果某些列要大得多——而且很少使用——那么将它们放在另一个表中可能会大大提高性能。

在组合表之前,您应该认识到数据结构是有意的。这可能只是“懒惰”的结果。创建了第一个表——然后出现了其他属性,因此将它们放入另一个表中。或者,这可能是有意为之,您可能想了解原因。

请注意,两个表之间的连接应该非常快,特别是如果两个表使用相同的主键。

关于database - 结合两个一对一表的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com