0

首先,如果有人提出并回答了类似的问题,我深表歉意。我搜索并发现了类似的问题,但还不够接近。

我的问题基本上是在我的特定情况下分隔几乎相同数据的表是否是个好主意。这些表跟踪两个非常不同的组的数据跟踪数据(个人用户的产品许可数据和企业用户的产品许可数据)。我正在考虑将它们分成两个表,以便用户验证过程运行得更快(尤其是对于个人用户,因为记录的数量要少得多(例如~500 条个人记录与~10,000 条企业记录))。最后,在表结构中不明显的用户类型存在显着差异 - 个人用户都有固定数量的激活,而企业用户可能有最多无限制的激活,并且跟踪的目的更多是为了激活统计信息。

我认为将表分开是个好主意的原因是因为每个表都会更小,从而导致查询更快(至少我认为它会......)。另一方面,我必须进行两次查询才能获得分析数据。此外,我可能希望不时更改我正在跟踪的数据,显然,这对于两个重复的表来说更加痛苦。

我猜查询时间差异可能微不足道,即使有数万条记录?但是,如果他们愿意分享,我想听听人们对此的想法(主要是关于效率和整体最佳实践)。

提前致谢!

4

1 回答 1

1

在设计数据库结构时,您应该尽可能地标准化数据。所以回答你的问题

“在我的特定情况下,将几乎相同数据的表分开是否是个好主意。”

如果你正确地规范你的数据库,答案是否定的,创建两个具有几乎相同信息的表不是一个好主意。通过规范化,您应该能够将相似的数据分离到映射表中,这将允许您创建运行得更快的更复杂的查询。

第一个范式规范化的一个非常基本的例子是你有一个用户表,在表中你有一个角色列。除了物理单词“admin”或“member”之外,您还有一个 id 映射到另一个名为角色的表,其中 1 = admin 和 2 = member。这个想法是存储重复的 id 比存储重复的单词(如 admin 和 member)更有效。

于 2013-05-28T22:57:53.400 回答