Domanda

Ho il seguente schema: Il mio sito è un gioco a quiz, quindi ogni domanda " hasMany " Risposte, ma anche una domanda "hasOne" Risposta corretta rappresentata anche dal modello di risposta. Devo ancora testarlo, ma l'istinto del mio programmatore mi dice che l'array recuperato sarà in qualche modo ridondante e non separerà la risposta corretta dal resto di essi.

La mia domanda è: come posso rappresentarlo nei modelli e nel database, esiste un modo migliore per rappresentare questa relazione?

È stato utile?

Soluzione

O guarda questa pagina, molto utile;) http: //www.charlesgarwood .com / blog /? p = 23

Altri suggerimenti

Bene, posso trovare due modi per farlo.

  1. Una domanda ha molte risposte, mentre una domanda appartiene a una risposta corretta (avere lo answer_id per la risposta corretta nella domanda, quindi sembrerebbe Domanda (id, answer_id) e < code> Answer (id, question_id) )

  2. Avere una bandiera sulla risposta che rifletta se è quella corretta o no.

Penso che quale scegliere sia più un'opinione personale, ma probabilmente andrei per il numero 2, anche se 1 è più corretto dal pensiero relazionale, ma riduce la ridondanza e puoi ancora cercarla all'interno del risposte.

Naturalmente, se una domanda può avere più di una risposta corretta, l'opzione numero 1 è fuori discussione.

Un altro percorso sarebbe quello di creare 2 modelli associati alla stessa tabella. Inserisci una bandiera nella risposta che indica che è la risposta corretta o meno.

Dal momento che non cambierai quale risposta è corretta, mappare la correttezza su una bandiera al momento della creazione va bene e ti permetterà di avere più risposte corrette. Con un sistema di ponderazione puoi persino valutare la correttezza della risposta.

Con due modelli separati, assicurarsi di impostare le condizioni sulle relazioni o nel modello stesso in modo che il modello CorrectAnswer trovi le risposte solo con il set di campi Answer.correct = true. È quindi possibile disporre di un modello di risposta generico che non presenta tale condizione. Fatto nel modello Domanda, puoi persino utilizzare puramente i flag di associazione per recuperare entrambi i tipi.

Prova a chiedere a cakeqs.org è il portale relativo a cakephp. Ma sicuramente dovresti avere solo diversi alias per entrambe le associazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top