Question

J'ai le schéma suivant: Mon site est un jeu-questionnaire, ainsi chaque question "a hasany". Réponses, mais aussi une question "hasOne". bonne réponse qui est également représentée par le modèle de réponse. Je n'ai pas encore testé cela, mais l'instinct de mon programmeur me dit que le tableau récupéré sera en quelque sorte redondant et qu'il ne séparera pas la bonne réponse du reste d'entre eux.

Ma question est la suivante: comment puis-je représenter cela dans les modèles et dans la base de données, existe-t-il un meilleur moyen de représenter cette relation?

Était-ce utile?

La solution

Ou regardez cette page, très utile;) http: //www.charlesgarwood .com / blog /? p = 23

Autres conseils

Eh bien, je peux trouver deux façons de le faire.

  1. Une question comporte de nombreuses réponses, tandis qu'une question appartient à une réponse correcte (indiquez le answer_id pour la réponse correcte dans la question, afin qu'il ressemble à Question (id, answer_id) et < code> Réponse (id, question_id) )

  2. Ayez un drapeau sur la réponse indiquant si c'est la bonne ou non.

Je pense que choisir est plutôt une opinion personnelle, mais je choisirais probablement le numéro 2, même si 1 est plus correct en pensée relationnelle, mais cela réduit la redondance et vous pouvez toujours le rechercher dans la réponses.

Bien sûr, si une question peut avoir plusieurs réponses correctes, l'option 1 est hors de question.

Une autre voie serait de créer 2 modèles mappés sur la même table. Avoir un drapeau dans la réponse qui indique que c'est la bonne réponse ou non.

Etant donné que vous ne demanderez pas quelle réponse est correcte, associer l'exactitude à un indicateur au moment de la création convient, et vous permettra d'avoir plusieurs réponses correctes. Avec un système de pondération, vous pouvez même évaluer l'exactitude de la réponse.

Avec deux modèles distincts, veillez à définir les conditions sur les relations ou dans le modèle lui-même, de sorte que le modèle CorrectAnswer ne trouve de réponses que pour l'ensemble de champs Answer.correct = true. Vous pouvez alors avoir un modèle de réponse générique qui ne présente pas une telle condition. Dans le modèle Question, vous pouvez même utiliser uniquement les indicateurs d’association pour extraire les deux types.

Essayez de demander à cakeqs.org c'est un portail lié à cakephp. Mais définitivement, vous devriez juste avoir différents alias pour les deux associations

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top