我工作的測驗項目,我想以這樣的方式創建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;
感謝您閱讀本文。