use*_*788 5 mysql database-design
我目前正在研究一个测验系统,并试图首先进行数据库设计。我已经阅读了一些关于不同测验的主题,但它们在某些部分都是独一无二的。
系统将使用带有 PHP 的 MySQL 数据库。
这个测验系统的目标:
到目前为止的数据库设计图像。我已经在每个“关系”上写了这个字段。
我很确定其中的大部分内容都是不言自明的,但我已经对不太明显的内容添加了注释。
至少在一开始它不会是任何“现场”比赛。更有可能的是,您进行测验,获得时间,然后您可以将链接发送给朋友并参加比赛。但我还在考虑那部分。
我意识到,与将所有内容放在一两个表格中的基本测验设计相比,使用此设计获得完整结果等需要更多的工作。但是我尝试将它分成不同的表,以便能够更好地扩展它并使其更复杂以备后用。
我正在考虑添加某种支持,以便一个问题也可以用于不同的测验。只是在想我应该如何做到最好。
这其中的一个关键功能还在于能够快速加载所有内容。
欢迎任何提示!
wp_quiz(这里我们存储所有不同的测验)
wp_quiz_questions
wp_quiz_question_answers
wp_quiz_participants
wp_quiz_participant_answers
总体来说相当不错,我建议只做一些小的改变:
quiz_id 在 wp_quiz_participant_answers 表中是多余的,您可以通过 JOIN 到 wp_quiz_questions 或 wp_quiz_participants 表来获取它
如果您有任何计划允许类似登录或以同一用户身份继续参加测验的功能,您可能应该将用户分解到 wp_quiz_participants 引用的他们自己的表中。看起来您可能正在考虑 quiz_participant_userid 的思路?
性能将基于您的查询,密切关注性能并在必要时添加索引。
| 归档时间: |
|
| 查看次数: |
9844 次 |
| 最近记录: |