php - 限制已经出现在在线考试系统中的学生参加考试

标签 php mysql

我正在尝试制作在线考试系统。我有三张 table 。表“student”包含学生的详细信息,列 id 唯一标识学生。表“tests”包含所有可用测试的详细信息,并且有一列 id 包含测试的 id。然后我有包含问题和答案的测试表。

现在我希望如果任何学生出现在测试中,则该学生不能再次出现在该测试中。我怎样才能做到这一点?请帮忙。提前致谢。

最佳答案

啊啊。如果您需要创建关系表...首先创建一个与student_id和test_id相关的表。当您这样做时,您可以在多个列上创建主键:

CREATE TABLE students_tests
( 
FOREIGN KEY student_id REFERENCES student(id) ,
FOREIGN KEY test_id REFERENCES tests(id)
PRIMARY KEY (student_id,test_id)
)

但是,如果您已经拥有带有主键的关系表,则可以使用 ALTER TABLE ... ADD UNIQUE 命令将键对(或元组)设为唯一集。这个问题已在这里得到解答:

How do I specify unique constraint for multiple columns in MySQL?

关于php - 限制已经出现在在线考试系统中的学生参加考试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732171/

相关文章:

php - 数据库结果显示不正确

php - 每 3 秒将数据从 Flash 发送到 php

php - 为什么不反斜杠每个空格以防止 mysql 注入(inject)

php - sql插入具有层次结构的一堆记录

php - 在 Linux 服务器上通过 PHP 执行 Windows 程序

php - python 中的混淆值

mysql - 出现错误无法执行语句 : impossible to write to binary log since BINLOG_FORMAT = STATEMENT

mysql - TYPO3 Extbase 查询与 CONCAT

mysql - Hibernate JOIN错误语法异常

php - utf8_unicode_ci 似乎不是UTF8