Frage

Ich habe folgendes Schema: Meine Website ist ein Quiz-Spiel ist, so jede Frage „hasMany“ Antworten, sondern eine Frage auch „hasOne“ richtige Antwort, die auch durch das Antwort-Modell dargestellt wird. Ich habe noch dies zu testen, aber Instinkt meines Programmierers sagt mir, dass die abgerufene Array Art überflüssig sein wird, und es wird die richtige Antwort aus dem Rest von ihnen nicht trennen.

Meine Frage ist, wie kann ich dies in den Modellen darstellen und in der Datenbank, gibt es einen besseren Weg, diese Beziehung zu vertreten?

War es hilfreich?

Lösung

Oder schauen Sie einfach auf dieser Seite sehr nützlich;) http: //www.charlesgarwood .com / blog /? p = 23

Andere Tipps

Nun, ich kann mit zwei Möglichkeiten, um es zu tun.

  1. Eine Frage hasMany Antwort, während eine Frage belongsTo eine korrekte Antwort (hat die answer_id für die richtige Antwort in der Frage, so dass es wie Question(id, answer_id) und Answer(id, question_id) aussehen würde)

  2. Haben Sie eine Flagge auf der Antwort, die, wenn sie spiegelt die richtige ist oder nicht.

Ich denke, welches man wählen eher eine persönliche Meinung ist, aber ich würde wahrscheinlich für die Nummer 2 gehen, auch wenn ein richtiger aus relationalen Denkens ist, aber es reduziert die Redundanz und Sie können es in der nach wie vor suchen Antworten.

Natürlich, wenn eine Frage mehr als eine richtige Antwort haben kann, dann 1 Optionsnummer indiskutabel ist.

wäre eine andere Route zu dem gleichen Tabelle zugeordnet erstellen 2 Modelle sein. Haben Sie eine Flagge in der Antwort, die angibt, es ist die richtige Antwort oder nicht.

Da Sie nicht Schalt werden, welche Antwort richtig ist dann die Abbildung der Korrektheit zu einem Flag zum Zeitpunkt der Erstellung ist in Ordnung, und lassen Sie mehrere richtige Antworten haben. Mit einem Gewichtungssystem können Sie auch die Richtigkeit der Antwort zu schätzen wissen.

Mit zwei getrennten Modellen, stellen Sie sicher, dass die auf die Beziehungen oder im Modell selbst zu setzen, so dass das correctAnswer Modell findet nur Antworten mit der Answer.correct = true Feldsatz. Sie können dann eine generische Antwort Modell, das nicht einen solchen Zustand hat. Geschehen in der Frage Modell, das Sie selbst rein die Assoziations Flaggen nutzen könnten beide Arten zu holen.

Versuchen Sie fragen bei cakeqs.org es ist cakephp verwandtes Portal. Aber auf jeden Fall sollten Sie nur haben diferent Aliase für beide Assoziation

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top