MySQL调查设计中的可重用问题

时间:2017-02-03 13:11:51

标签: mysql database database-design

我正在研究可重用调查数据库设计。所以这个想法是。

  

客户有很多用户,客户的类别包含问题。每个用户都必须回答所有问题才能完成调查。这些答案存储在Answers表中。

困难部分

有些用户是教练,因此教练可以为用户填写调查问卷,从而提供他们将代替用户回答的内容的分数。因此,我们稍后可以比较用户回答的内容以及教练为每个用户回答的内容。那不难!以下是:

几个月后,我们应该能够让用户重做调查,以便对所有现有问题给出新的答案。

我想知道我的数据库设计是否合适。 我觉得这不是最佳的。

enter image description here

例如,使用我的设计时,以下查询似乎很难

  • 对于给定的扫描,请提供所有类别和问题 (因为中间有很多表)

非常期待您的回复!

1 个答案:

答案 0 :(得分:2)

考虑一下您将如何使用此信息。您是否想要将用户分数与教练分数与新分数进行比较?我认为这很可能。如果他们没有足够的改进,他们最终会多次参加调查吗?是否会有没有整数答案的问题?你打算如何存储这些结果?当他们创建新的调查时,他们会想要重复使用以前的一些问题或答案(例如是/否)。你如何识别一个独特的用户,名字不是唯一的,自动生成的ID是唯一的,但你怎么知道哪个John Smith属于你拥有的12个ID?

  • 我会将Answer表重命名为SurveyResponse。
  • 我会添加调查回复的日期时间(所以人们可以 多次回答你可以比较答案)和a 调查ID(来自下一个建议的新表)。

  • 我会创建一个Survey表来存储属于的问题 特定调查。

  • 我会创建一个新的答案表,它只有可能的答案和 一个ID。

  • 我会创建一个名为SurveyQuestionAnswer的表来存储 允许每个调查的问题答案(不同的调查 对同一个问题可能有不同的回应。)