Ralf König: Datenbank-Struktur / Prüfungstrainer?

Ich möchte einen *Prüfungs-Trainer* entwickeln. Eine Online-Anwendung, die mir zu einem bestimmten Thema Prüfungsfragen (Auswahl Themenschwerpunkt und Schwierigkeitsgrad) vorlegt, mir 5 mögliche Antworten abnietet und je nach richtiger oder falscher Antwort entscheidet, in welcher Reihenfolge die Fragen wiederholt werden. Außerdem soll es für den Anwender möglich sein, eigene Fragen/Antworten zu ergänzen.

Falls es soetwas irgendwo schon in fertig gibt, bitte um Hinweis!

Andernfalls:
Wie würdet ihr soetwas aufbauen? Wie die Datenbank strukturieren? Für  Ratschläge und Hinweise bin ich (bevor ich alles zwei, drei, vielmal umbauen muss) im Vorfeld schon sehr dankbar!

MySQL/PHP/HTML

  1. Mahlzeit Ralf König,

    Wie würdet ihr soetwas aufbauen? Wie die Datenbank strukturieren?

    Eine ganz einfache Struktur könnte ungefähr folgendermaßen aussehen:

    Tabelle "Frage":

    ID | Text
    ---+-------
     1 | Warum?
     2 | Wann?

    Tabelle "Antwort":

    ID | Frage_ID | Text    | Richtig_JN
    ---+----------+---------+-----------
     1 |        1 | Darum   | J
     2 |        1 | Deshalb | N
     3 |        2 | Heute   | N
     4 |        2 | Morgen  | N
     5 |        2 | Nie     | J

    Wenn Du natürlich noch protokollieren willst, wer wann welche Antworten gegeben hat, musst Du das auch erfassen und in geeigneter Form mit Fragen und Antworten verknüpfen.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Hi, von Ekki hast du ja schon ein praktisches Beispiel für deinen Fall bekommen. Allgemein solltest du für dich solche Fragen systematisch Schritt für Schritt lösen.

    Was sind denn in deinem Fall die Entitäten (Objekte), um welche es geht und in welcher Beziehung stehen sie zu einander?

    Da hättest du grundsätzlich erstmal "Frage" und "Antwortmöglichkeit". Zwischen "Frage" und "Antwortmöglichkeit" besteht schon mal eine 1:n Abhängigkeit, eine Frage hat mehrere Antwortmöglichkeiten. (m:n möchte ich nicht ausschliessen, aber m:n ist auch nichts anderes als 1:n aus einer der beiden Richtungen).

    Ein weiteres Attribut von "Antwortmöglichkeit" kennst du auch bereits: "RICHTIG", was entweder JA (true) oder NEIN (false) sein kann.

    Damit hättest du das plattform-unabhängige Modell. Danach stellst du die Plattformabhängigkeit her, indem du sagst du möchstest es als eine relationale Datenbankstruktur auf mysql abbilden.

    Wie bildet man Entitäten in einer relationalen Datenbank ab (für gewöhnlich)? Als Tabellen und die Zeilen der Tabelle sind jeweils die Instanzen der Entität.

    Also, macht 2 Tabellen: 1x für Frage, 1x für Antwortmöglichkeit

    Und wie stellt man eine 1:n Abhängigkeit in einer relationalen Datenbank dar? Mit einer Fremdschlüsselbeziehung (Foreign Key). Dadurch ergibt sich ein technisches Attribut für die Entität "Antwortmöglichkeit", nämlich "passt zu Frage" und somit eine Tabellenspalte "FrageID" in der Tabelle "Antwortmöglichkeit".

    Und so gehst du einfach weiter vor.

    Cheers, Frank