2015-05-27 69 views
0

我正在创建一个桌面应用程序,通过询问多项选择题来测试用户对特定主题的知识。每个问题都包含独特的问题编号,问题,四个选项,正确答案,主题和难度。我有一个这样的问题的数据库。对于每个用户,我想跟踪他所尝试的问题,以便我可以为他提供他的进度分析,并提供更好质量的问题。我如何为每个用户存储所需的数据?哪种数据类型用于存储用户数据?

我已经有一个数据库的用户的详细信息和MySQL中的问题之一。

+1

您需要多个具有外键的表。 – SLaks

+0

http://en.wikipedia.org/wiki/Foreign_key – SLaks

回答

2

你应该有三个表:

  • 用户
  • 问题
  • 成绩

的用户表将有一个主键例如, PRIMARY KEY(用户ID)

问题表也将有一个主键。 最后,分数表将有一个主键和两个外键引用用户和问题表,例如。

PRIMARY KEY(scoreID)

外键(用户ID)参考文献用户(用户ID),

外键(questionID)参考文献问题(questionID)

为得分表的主键不能是两个外键的组合,因为用户对于每个问题可能有许多不同的分数。主键必须是唯一的。当然,分数表将有一个分数属性(列)来存储每次的分数。

至于要使用哪种数据类型,您只需要主键和分数的int数据类型,除非您想为分数使用更精确的类型(如float)。我建议你使用varchar来处理用户名等内容。

相关问题