我使用Wordpress,jQuery和PHP创建了一个测试系统,效果很好。我没有太多经验的领域是mysql数据库。
我不确定如何以干净整洁的方式保存结果。
我要保存的内容如下:
第1,2,5和2点6是相当直接的保存数据。困惑伴随着问题和答案。
如何以完整的方式将这些保存到mysql数据库?
假设有10个问题,每个问题都有多个选择答案,如何保存数据库中的每个问题但是将其链接到填充它们的用户?我不确定如何保持数据库整洁,这很快就会失控。
将来我可能想对这些问题和答案进行一些搜索。
答案 0 :(得分:4)
“整洁”应该让你想到“正常化”。
开始考虑关系,暂时不用担心表格。你已经阐明了其中一些:
一旦你完成了那些分类,表格相对容易描述。
答案 1 :(得分:2)
您需要规范化数据库结构。
**Table: users**
id - int
username - varchar
password - varchar
active - enum (y,n)
**Table: questions**
id - int
question - varchar/text
**Table: answers**
id - int
question_id - int (foreign key questions.id)
answer - varchar/text
is_correct_anser - enum (y, n)
**Table: test_master**
id - int
test_name - varchar/text
pass_score - int (minimum score required to pass the test)
**Table: test**
user_id - int (foreign key to users.id)
test_id - int (foreign key to test_master.id)
question_id - int (foreign key to questions.id)
answer_id - int (foreign key to answers.id)
根据以上表格,您可以按标准化方式存储所有必需信息。请注意,规范化并不总是有用,这取决于您的应用程序的要求。一旦完成测试,将总得分与user_id和test_id一起存储在单独的表中也是一个更好的理想,因为这将避免多个表上的连接。
答案 2 :(得分:0)
创建一个表格问题,你有问题,问题和选择。在ohter表中,您只需要保存question_id,choice,username,score,testname等。 question_id将是主要的关键问题表。