【发布时间】:2018-12-26 11:26:09
【问题描述】:
我试图设计表格来存储设置,例如发放奖励。给予的奖励需要根据某些标准进行限制。例如,获得 2 星 和 25 分 的孩子将获得 20 颗糖果,而获得 2 星 和 70 分 奖励 65 颗糖果。
这是我能想到的:
- 设计一个表格,将所有信息存储在一个表格中,如下表:
- 将其设计为分隔表:
对于第一种方法,根据条件很容易找到我需要的数据,但如果条件太长,列可以接受,系统将难以分离数据。
对于第二种方法,维护很容易,但如果子表不存在,父表将变得毫无意义。这是因为它们相互依赖。
我想问一下为这种方法设计表格的最佳方法是哪种。它应该易于搜索和维护。有没有更好的方法?
【问题讨论】:
-
回答你的说法“如果子表不存在,父表将变得毫无意义”,为什么你会在父表中有一行而不在子表中, 除非父级的奖励值为
0?如果它确实有一个值,并且子表中没有行,那并不是父表“毫无意义”,而是您的表中缺少数据。因此,您需要确保在填充数据时不会发生这种情况。不过老实说,我认为“父”作为视图会更好,而您只需要“子”表(除非您可以没有子表)。 -
我确实需要确保孩子必须有一些东西,这样父母就不会白白呆在那里。我也担心如果奖励相同但标准不同怎么办。像我们将拥有 ID 1 和 2 的含义是分发 30 个糖果,但子表不会有相同的标准。通过查看表格本身,它在这一点上根本没有任何意义。那么这种方法好还是不好?
标签: sql-server database-design