【发布时间】:2014-04-24 12:49:32
【问题描述】:
我正在构建一个数据库,但我不确定我应该建立多深的层次结构。
似乎节省空间的最佳情况是三层。 group->sub_group->item
在平均情况下,一个子组有 300 个项目,而组有 100 个子组。项目目前接近 100 万件,并且正在加速增长。
我很想将 GROUP 与 ITEM 区分开来,因为它反映了现实世界,但 SUB_GROUP 仅存在是因为 ITEM 通常在几百行中是相同的。需要明确的是,我可以将数据放在子组的一个实例中,并将其附加到项目的每个实例中。
在每个查询中至少进行 3 个连接会更好地提高性能吗?还是我最好用更多重复数据制作更少的表格?
【问题讨论】:
-
我不知道有什么时候后悔过规范化表格,而且很多时候不这样做会引起很多头痛。索引将为您提供所需的性能。