私はクイズのプロジェクトに取り組んでいると私は、このような方法で、mysqlの構造を作成したいこと:MySQLのDB構造のヘルプ
questionID:ユニークな質問識別番号(主キー)
テストID:ユニークなテスト識別番号(このテストに属する質問)(プライマリキー)
questionOrder:クイズの質問内の質問の順序、つまりこの質問はクイズのn番目の質問です。この値をmysqlから取得して、dbに新しい質問を挿入するときに計算する必要はありません。
複数の異なるテストに1つの質問があります。
私が持っている質問のカップル:
1)I持って、次のコードが、私は得る:
不正なテーブル定義。自動列が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;
ありがとうございます。