我工作的测验项目,我想以这样的方式创建MySQL结构:MySQL数据库结构有助于
questionID:的唯一问题标识号(主键)
testID:一个独特的测试识别号码(问题属于这个测试)(主键)
questionOrder:测验问题内的问题的顺序,即这个问题是测验中的第n个问题。我希望这个值来自mysql,这样当我向db插入一个新问题时,我不必计算它
一个问题可以在多个不同的测试中。
我有几个问题:
1)我有下面的代码,但我得到:
不正确的表定义;可以只有一个自动列,它必须被定义为一个键
我该如何解决这个问题?
2)此结构不允许问题属于多个测验。任何想法来避免这种情况?
3)你认为这个结构是好的/最佳的,你能提出更好的建议吗?
CREATE TABLE `quiz_question` (
`questionID` int(11) NOT NULL auto_increment,
`quizID` int(11) NOT NULL default '0',
`questionOrder` int(11) NOT NULL AUTO_INCREMENT,
`question` varchar(256) NOT NULL default '',
`answer` varchar(256) NOT NULL default '',
PRIMARY KEY (`questionID`),
UNIQUE KEY (`quizID`, `questionOrder`),
KEY `par_ind` (`quizID`, `questionOrder`)
) ENGINE=MyISAM;
ALTER TABLE `quiz_question`
ADD CONSTRAINT `0_133` FOREIGN KEY (`quizID`) REFERENCES `quiz_quiz` (`quizID`);
CREATE TABLE `quiz_quiz` (
`quizID` int(11) NOT NULL auto_increment,
`topic` varchar(100) NOT NULL default '',
`information` varchar(100) NOT NULL default '',
PRIMARY KEY (`quizID`)
) ENGINE=MyISAM;
感谢您阅读本文。