数据库设计:将两个具有相同列和太多数据的表合并是一个好主意吗?

Gyp*_*psy 7 sql-server database-design sql-server-2008

我有两个具有相同列的表,一个用于保存银行金额,另一个用于保存收银台,它们都可能有很多数据,所以我担心数据检索速度。我不知道将它们结合起来更好通过添加额外的列来确定每条记录的类型或为每条记录创建一个单独的表?

asa*_*rob 6

您应该问的主要问题是 - 我如何查询表。如果两个表之间没有真正的逻辑连接(您不想在同一查询中获取行) - 使用两个不同的表,因为您需要保留另一列来告诉您什么类型您正在处理的行,这会减慢您的速度并使您的查询更加复杂

此外,如果同一列的 FK 到 2 个不同的位置,则 FK 可能会出现问题

另外(第二) - 锁可能是一个问题 - 如果您使用一种类型,您可能会阻止另一种类型

结论 - 2 个表,不仅仅是为了速度


小智 4

理论上,您有一个唯一的实体,因此您需要考虑一张表用于您的帐户,另一张表用于您的帐户类型,为了获得更好的性能,您可以将这些类型的帐户分离到两个不同的文件组和分区上,并在该表上创建索引typeFK 用于帐户表,在这种情况下,逻辑上您拥有一个由关系理论统治的实体,而物理上您的数据是分离的,数据检索过程将快速且有益。