2010-11-24 5 views
7

Beispiel Fragetypen So Far:Können Sie ein Datenbankdesign für Quizfragen und -antworten empfehlen, das eine erweiterbare Anzahl von Fragetypen ermöglicht?

  • Multiple Choice Einzel Antwort (man denke Radiobutton)

  • Multiple Choice Multiple Antwort (man denke Checkbox)

  • Matching (jetzt gibt es viele Permutationen von mögliche Auswahlen)

Ich möchte sie in einer Datenbankstruktur speichern, die könnte für diese und viele weitere Arten von Fragen in der Zukunft verwendet werden, also versuche ich mir einen Weg dafür zu überlegen ... erweiterbar?

Im Moment habe ich (Ihre Empfehlung haben jedoch nicht durch diese eingeschränkt werden):

  • Tabelle Fragen
  • Antworten Tabelle
  • ChosenAnswers Tabelle
  • Tabelle Benutzer

Eine Frage kann viele Antworten haben. Ein Benutzer/Frage-Paar kann viele ausgewählte Antworten haben.

Allerdings kann ich nicht so gut funktionieren mit Matching, soweit ich das beurteilen kann, und ich bin auch nicht 100% überzeugt, dass es leicht funktioniert für Multi-Antwort, leicht die geringste Menge an Logik zur Berechnung bedeutet Gesamtpunktzahl usw.

Kann jemand an ein Design denken, das mir erlauben würde, alle drei dieser Arten von Quizfragen zu verwenden sowie zukünftige hinzuzufügen? Ich brauche Inspiration, ein Paradigmenwechsel, wenn man so will ...

Ein Beispiel für zukünftige Fragetypen ‚Diese Liste der Dinge in der richtigen Reihenfolge gesetzt‘ sein könnte ... etc.

Es hat bekam Es mag ein Weg sein, wie kompliziert es auch erscheinen mag, all diese verschiedenen möglichen Fragetypen zu berücksichtigen, während ich immer noch eine ziemlich einfache Art der Berechnung der Gesamtpunktzahl für ein Quiz zu Berichterstattungszwecken verwenden kann, und so weiter. Bitte teilen Sie mir in den Kommentaren mit, ob es irgendwelche Details gibt, die ich vermisse, aber es ist vielleicht am besten anzunehmen, dass ich nicht einmal an ein Detail gedacht habe, an das Sie denken, weil ich alles, was ich habe, in die Hand genommen habe in der Frage bereits, aber ich werde Klarheit hinzufügen, wie es verlangt wird.

+0

Können Sie sich einen Weg vorstellen, dies auf Papier zu tun? Wenn nicht, vergessen Sie den Datenbankentwurf. –

+0

@AlexBrown Ja, wir sind dabei, das gerade zu tun ... wir haben nur auf einen externen Ratschlag gehofft, der uns hilft, außerhalb unserer "Box" zu denken. – BigOmega

+0

@ioSamurai Ich stehe vor einem ähnlichen Problem. –

Antwort

2

Eine einzelne Antwort ist wie eine Mehrfachantwort mit einer Einschränkung, so dass diese einfach in derselben Tabelle gespeichert werden können. Also, was du für beide schon getan hast.

Ich würde jedoch davon abraten, zu viel zu konsolidieren, denn wenn Sie jemals eine andere Art von Frage hinzufügen müssen, können Sie am Ende Ihr Paradigma umgestalten, was nicht nur den alten Typen Kopfschmerzen bereiten wird aber auch mehr oder ebensoviel Arbeit für den neuen Typus. Das heißt, fügen Sie spezielle Tabellen für die übereinstimmenden Fragen ein.

Sie können die Ergebnisse immer mit einer Ansicht kombinieren. Auf diese Weise sind einzelne Typen leicht zu pflegen, aber die kombinierten Ergebnisse sind auch einfach zu erzeugen.Lassen Sie die Datenbank mit der Komplexität umgehen, nicht mit Ihrer eigenen Klugheit. (Wenn Sie damit nicht einverstanden sind, können Sie auch eine benutzerdefinierte Engine schreiben, anstatt SQL zu verwenden.)

+0

Ja, meine Gedanken genau, ich hatte gehofft, dass es ein sehr erweiterbares Paradigma gab, das ich nicht in Betracht gezogen hatte, nur nach Hilfe außerhalb der Box denkend ... vielleicht ein stark metadatengesteuerter Ansatz, ich bin mir nicht sicher ... AUCH: Könnten Sie erweitern, was Sie in Ihrem letzten Absatz bedeuten "Ergebnisse mit einer Ansicht kombinieren" dies kann das Ticket sein Ich brauche nur mehr Details darüber, was du meinst – BigOmega

+2

Wenn dies für ein Geschäft ist, würde ich für zusätzliche Tabellen gehen, wie ich empfohlen. Wenn dies eine akademische Übung ist, sehen Sie, was möglich ist, fügen Sie auf jeden Fall einige zusätzliche Spalten zu Ihrer Frage- und Antworttabelle hinzu und machen Sie es so kompliziert, sie so anzusehen, wie Sie möchten. :) – Kev

0

Sie können sich leicht mit "Matching" so viele Fragen mit Multiple-Choice-Single-Answer denken

Anstatt Radio-Button würde ich eine Dropdown-Box vorschlagen. Layout würde besser funktionieren.

Für mehr Inspiration, sehen Sie sich an, wie LON-CAPA es macht.

Viel Glück!

7

Im folgenden Entwurf werden wir eine Reihe von Flags in der Fragetabelle verwenden, um anzugeben, um welche Art von Frage es sich handelt. Wir geben auch die Ebene der Frage an. Die Antworttabelle ist über den Fremdschlüssel mit der Fragetabelle verknüpft. Die vollständige Testtabelle enthält die Ergebnisse aller durchgeführten Tests. Pro Benutzer ist nur ein unvollständiger Test zulässig. In der unvollständigen Testtabelle verknüpfen wir die Frage zurück mit der Fragetabelle (oops ich habe die Beziehungslinie verpasst), die zu den möglichen Antworten führt, die wir die Antworten notieren, die vom Benutzer in einer Zeichenfolgenspalte der unvollständigen Testtabelle gegeben werden.

alt text

+0

Süßer Dank, ich nehme mir etwas Zeit und schaue mir das an – BigOmega

Verwandte Themen