需要有关测验应用的数据库设计和关联的输入和指导

时间:2019-05-25 19:27:34

标签: mysql database database-design loopbackjs erd

我正在将基于Java的旧过时测验应用程序项目移植到LoopbackJS上。

背景:

这是用于智力奖学金考试的MCQ测验应用程序。学生可以在应用程序上注册。每个年级都有一定数量的问题。学生可以通过解决问题进行练习,并会根据解决问题的尝试进行评分。将有排行榜,对学生进行排名。 还将每月解决测验。这些每月测验只是根据学生的成绩从所有可用问题中随机选择的问题。

下面是我将要建立的Old Java Project的数据库模式。

enter image description here

上面的数据库设计还可以,还是有一定的改进范围。

我也一直在通过stackoverflow来查找类似的问题,然后发现另一个符合我的要求的问题。 但是我对#Test Questions部分感到困惑,努力满足我的需求。

Rails Associations and db design for Quiz Application

建议和指导将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:0)

  • 没有冗余数据。我看到了..._bin..._hex的几种情况;我假设这些是相同的数据,但是使用不同的编码?提取/存储时,转换非常容易(使用HEX()UNHEX())。

  • 请勿使用UUID作为密钥,除非您将从多个客户端接收数据并且它们无法利用AUTO_INCREMENT主密钥。

  • 考虑在单个列中实现SET列的INTcol_has_%。 (这可能是或不是的一种改进。)

  • 请注意要存储多少敏感数据。

  • 为便于阅读查询,请不要在列名前面添加col_。同上,因为表名未包含在列名中。当JOINing时,您将有机会(对读者有义务)用表名来限定列。

  • 在其他两个表之间创建多对多映射表时,请不要使用id - ID对是一个很好的组合PRIMARY KEY

    < / li>