调查和答案,关于多对多

时间:2017-02-08 17:37:51

标签: mysql database database-design relational-database

我有以下数据库方案(我不知道它是否完美,但我认为它还好吗?)

enter image description here

  

这是一个用户有多个调查的系统,用户在Survey_Answers表中提供问题的答案。

现在用户可以进行多次调查,问题相同,但在一年的晚些时候,他们必须再次填写调查问卷。

我几乎就在那里,我只是想知道如何将调查的答案联系起来。我应该在survey_answers和user_surveys之间建立关系..因此在user_surveys表中添加一个id

或者您认为与调查表建立关系是否合适?我不确定哪一个是正确的。

我在第二个屏幕截图中概述了两种可能性。

enter image description here

期待您的回复! 谢谢。

1 个答案:

答案 0 :(得分:1)

这可能取决于您的系统最有可能/最常用于导航关系的方式。

如果您更有可能查看用户的答案并说 - 嘿,让我看看这个问题何时得到解答,作为日期调查的一部分,那么您应该加入user_surveys(我假设您是employee_id存储将匹配user_surveys中的user_id)

如果您更有可能查看用户的答案并说 - 嘿这个问题属于哪个调查,那么您应该加入调查。

您仍然可以回答任何一个使用的连接问题,这只是一个更优化的性能问题(尝试回答最常见的查询时表联接更少)。

实际上可能没有多少东西,所以你总是可以投掷硬币:)