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

标签 mysql database database-design

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

A Client has many users, A client has categories which consist of questions. Every User has to answer all questions to complete the Survey. Those answers are stored in the Answers table.

困难的部分

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

几个月后,我们应该能够让用户重新进行调查,从而为所有仍然存在的问题提供新的答案。

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

enter image description here

例如,以下查询在我的设计中似乎很难

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

非常期待您的回复!

最佳答案

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

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

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

  • 我会创建一个新的 Answer 表,其中包含可能的答案和 一个 ID。

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

关于mysql - MySQL 调查设计中的可重用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42025151/

相关文章:

MySQL,如何从消息列表中选择对话

php - 如何解决 laravel 迁移错误 "General error: 1005 Can' t 创建表”

database-design - 如何设计一个存储在现实世界中可以重复的名称数据的表?

database-design - 设计电子商务数据库

javascript - PHP mySQL textarea --- 整个shebang

mysql - 将一列中的数据分组到单个单元格中输出 mySQL 结果

database - Postgres 中的循环删除级联

sql - 当其中一行为空时,如何将两行 nvarchar 行转换为一行

c# - 对特别影响少数表的数据库的特别关注/设置

MySQL 错误#1111