调查关系数据库表模式

时间:2014-02-07 13:43:42

标签: sql database

我有一个包含400个问题的表和一个用户表(可能是100万个)及其组(它们都属于不同大小的用户组)。每个用户都必须回答所有问题。将用户组合在一起以便彼此进行分析。这些团体可以是各种规模的。

我应该如何记录每个用户的答案,以便我可以分析他们针对小组的答案?

如果我只是为每个用户复制问题,这将是一个很大的笨重的表。 '答案'表的大小约为4mil,只有1000个用户。 如果我给每个问题一个id,那么可以做一些更聪明的事情吗?

(不确定这是否是这个理论问题的正确Stack论坛)

1 个答案:

答案 0 :(得分:1)

我会为用户,群组,问题和答案设置单独的表格。

您可能需要考虑在Answers问题中添加GroupID,以及帮助强制执行RI,它允许您直接加入答案的组,为您保存联接并帮助编制索引。

通常,您可以通过两种方式对答案表进行建模,每行只有一个答案,或者每个用户每个问题都有一个非常宽的表。就个人而言,当你谈论400个问题时,我甚至不会考虑第二个选项 - 如果您决定更改问题,它还会为您提供更大的灵活性。

您可能希望使用reporting databases来确保您的表现可以接受。

对于您正在查看的答案量,您需要确保您的数据库为properly indexed