为了一个项目,我被要求查看现有的SQL数据库并看看它是否可以改进。 它基本上是一个客户数据库,每个客户有各种不同类型的数据。 这就是(基本上)它的组织方式:
每个客户在客户表中都有一行,带有客户ID。 然后对于每种类型的数据,每个客户都有自己的表。 所以,例如,并没有一个名为“jobs”的中央表,每行都有一个客户ID,但对于每个客户都会有一个称为“jobs1234”的作业表(1234是客户ID)。
现在,我的第一反应是困惑,不知道为什么要这样组织。 我一直只是学习过规范化,而没有真正深入思考。 但当我与人讨论时,有些人指出可能是出于性能原因。 他们说,如果“工作”的行数太多,将它们分成每个客户比放在一个表中更好。
有关索引和客户ID作为标识符的某些内容。 我不明白为什么这种方法会提高性能,到目前为止我还没有得到非常清晰的答案。 有人能向我解释为什么情况是这样的,以及在某些情况下这种方法是否更好吗?