用于存储用户数据的数据类型?

时间:2015-05-27 18:18:59

标签: mysql sql database types

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

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

1 个答案:

答案 0 :(得分:2)

你应该有三张桌子:

  • 用户
  • 问题
  • 得分

users表将有一个主键,例如, PRIMARY KEY(userID)

问题表还有一个主键。 最后,Scores表将有一个主键和两个引用用户和问题表的外键,例如。

PRIMARY KEY(scoreID),

FOREIGN KEY(userID)REFERENCES Users(userID),

FOREIGN KEY(questionID)参考问题(questionID)

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

对于要使用的数据类型,除了要为分数使用更精确的类型(如float)之外,您需要的只是主键和分数的int数据类型。我建议你使用varchar来代替用户名。