我正在创建一个桌面应用程序,通过询问多项选择题来测试用户对特定主题的知识。每个问题都包含独特的问题编号,问题,四个选项,正确答案,主题和难度。我有一个这样的问题的数据库。对于每个用户,我想跟踪他所尝试的问题,以便我可以为他提供他的进度分析,并提供更好质量的问题。我如何为每个用户存储所需的数据?哪种数据类型用于存储用户数据?
我已经有一个数据库的用户的详细信息和MySQL中的问题之一。
我正在创建一个桌面应用程序,通过询问多项选择题来测试用户对特定主题的知识。每个问题都包含独特的问题编号,问题,四个选项,正确答案,主题和难度。我有一个这样的问题的数据库。对于每个用户,我想跟踪他所尝试的问题,以便我可以为他提供他的进度分析,并提供更好质量的问题。我如何为每个用户存储所需的数据?哪种数据类型用于存储用户数据?
我已经有一个数据库的用户的详细信息和MySQL中的问题之一。
你应该有三个表:
的用户表将有一个主键例如, PRIMARY KEY(用户ID)
问题表也将有一个主键。 最后,分数表将有一个主键和两个外键引用用户和问题表,例如。
PRIMARY KEY(scoreID)
外键(用户ID)参考文献用户(用户ID),
外键(questionID)参考文献问题(questionID)
为得分表的主键不能是两个外键的组合,因为用户对于每个问题可能有许多不同的分数。主键必须是唯一的。当然,分数表将有一个分数属性(列)来存储每次的分数。
至于要使用哪种数据类型,您只需要主键和分数的int数据类型,除非您想为分数使用更精确的类型(如float)。我建议你使用varchar来处理用户名等内容。
您需要多个具有外键的表。 – SLaks
http://en.wikipedia.org/wiki/Foreign_key – SLaks