测验 - 用户提交到MySQL数据库

时间:2010-07-26 19:00:08

标签: php mysql

我想要实现的目标:具有用户帐户和累积结果表的测验系统。

过程:

- 用户设置帐户 - 用户登录 - 用户完成测验 -Answers进入结果表 - 显示结果表

我的数据库结构:

表1:用户

user_id  
username
password
email

表2:测验

quiz_id
title

表3:问题

question_id
quiz_id
question
question_notes

表4:答案

answer_id
question_id
user_id
answer
answer_notes

表5:回复

response_id
quiz_id
user_id
submit_time

问题将通过SELECT从表3输出。

我正在寻找的一些指示是如何确保每个测验条目的关系是一致的,所以当我运行INSERT语句时,ID是一致的(因此表3和表4的“question_id”是同样,例如)

我想我会为表4和表5提供2个INSERT语句。在这些插入语句中,有没有办法确保关系匹配?

我在查看如何将数据输入数据库时​​遇到一些麻烦,一旦我弄清楚这一点,我就可以解决使用数据的问题。

任何关于体面的关键点或对可能的表单处理的一些洞察都会非常感激。

非常感谢

2 个答案:

答案 0 :(得分:1)

MySQL中有LAST_INSERT_ID()函数(PHP中的mysql_insert_id()),它将从上一次插入查询返回auto_increment id。这样可以保持一致性。

请点击此处了解更多详情: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

答案 1 :(得分:0)

Foreign keystransactions强制执行referential integrity ...

例如:

<强>答案

question_id is a foreign key to question.id
user_id is a foreign key to user.id
(These are set in the table definition)

你插入像这样的答案(草率伪代码):

begin transaction
int qid = select id from question
int uid = select id from user
insert (qid,uid,...) into answers
commit transaction