Je travaille sur un projet quiz et je veux créer une structure de MySQL de telle sorte que:structure de MySQL db aide
QuestionID: Un numéro d'identification unique question (clé primaire)
testID: Un numéro d'identification de test unique (la question appartient à ce test) (clé primaire)
questionOrder: L'ordre de la question dans les questions de quiz, c.-à-d. Cette question est la question n dans le quiz. Je veux que cette valeur provienne de mysql, de sorte que lorsque j'insère une nouvelle question à db, je n'ai pas besoin de la calculer
Une question peut être dans plusieurs tests différents.
J'ai quelques questions:
1) J'ai le code suivant mais je reçois:
définition de table incorrecte; il ne peut y avoir qu'une seule colonne automatique et elle doit être définie comme une clé
Comment puis-je résoudre ce problème?
2) Cette structure ne permet pas à une question d'appartenir à plusieurs quiz. Une idée pour éviter cela?
3) Pensez-vous que cette structure est bonne/optimale, pouvez-vous suggérer quelque chose de mieux?
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;
Merci d'avoir lu ceci.