1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Datenbank Struktur Multiple Choice Quiz

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Bierpocke, 12 November 2017.

  1. Bierpocke

    Bierpocke Neuer Benutzer

    Hallo liebe Community,

    Ich würde gerne eine Datenbank für ein Quiz erstellen.
    Die spätere Abfrage soll im Multiple Choice Stil erfolgen und verschiedene Themenbereiche umfassen. Außerdem sollen Fragen in verschiedenen Themenbereichen eingepflegt werden.

    Mein Gedanke war bspw.:

    Datenbank: Gesellschaftswissenschaften
    Tabellen: Soziologie, soziale Arbeit, Theologie etc.
    Fragen in der Tabelle:

    Bildschirmfoto 2017-11-12 um 20.13.55.png

    Des Weiteren sollen Bilddatein mit eingepflegt werden können. Hierzu müsste man einen sicheren Upload gewährleisten.

    Man müsste außerdem noch irgendwie eingeben können, welche Antwort im Endeffekt die Richtige ist. Und man soll später per Dropdown den Fachbereich (also die Tabelle) auswählen können, in die man Fragen eintragen möchte.
    Zuzüglich sollen die bereits eingegebenen Frage nach Auswahl der Tabelle per Dropdown untereinander aufgelistet werden, um sie später noch einmal korrigieren zu können und spezielle Suchen ausführen zu können.


    --------------------------------------------------------------------------------------------------------------------------------



    Nun meine Frage, wie würdet Ihr ein solches Vorhaben in mysql php myadmin strukturieren?


    Tausend Dank im Voraus :)
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Beschäftige Dich mit Normaisierung. Mir scheint, Du willst für jedes Themengebiet eine eigene Tabelle, die wiederum nicht normalisiert ist. Dein "mysql php myadmin" trifft übrigens recht viele krude Dinge:

    * eine Möchtegern-Datenbank
    * eine relativ primitive Programmiersprache
    * ein sehr bescheidenes Tool, um 1. zu verwalten

    Dein "Und man soll später per Dropdown den Fachbereich (also die Tabelle) auswählen können, in die man Fragen eintragen möchte." - Konzept skaliert nicht. Mit jedem neuen 'Fachbereich' wirst Du neue Tabellen erstellen und die Programmierung ändern müssen. FAIL.
     
  3. Bierpocke

    Bierpocke Neuer Benutzer

    Ich beschäftige mich seit 2 Wochen mit der Thematik und habe die Frage genau aus diesem Grund gestellt, um von Anfang an das Vorhaben sinnvoll zu struktieren.

    Wie würdest Du ein solches Vorhaben aufbauen?
    Welches Tool verwenden?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Folgendes ist noch ohne Kaffee entstanden, daher mit Vorsicht betrachten...

    Code:
    test=# create table antworten (id int primary key, antwort text);
    CREATE TABLE
    test=*# create table fragen(id int primary key, frage text);
    CREATE TABLE
    test=*# create table frage_antwort(id int primary key, frage int references fragen, antwort int references antworten, richtig bool default false);
    CREATE TABLE
    test=*# create table themen(id int primary key, thema text);
    CREATE TABLE
    test=*# create table quiz_fragen(id int primary key, thema int references themen, frage_antwort int references frage_antwort);
    CREATE TABLE
    test=*#
    
    Sollte aber hinreichend flexibel sein, um je Frage 1 oder mehr (gültige) Antworten zu definieren, je Frage flexibel viele Antworten, flexibel viele Themen etc.

    So Spalten wie Antwort1, Antwort2, ..., AntwortN geben keine flexiblen Möglichkeiten.
     
  5. Walter

    Walter Administrator Mitarbeiter

    Aber Du solltest Dich wirklich mal in Normalisierung einlesen....
     
  6. Bierpocke

    Bierpocke Neuer Benutzer

    Vielen Dank für die erste Hilfestellung.
    Ich werde mich weitervorarbeiten und mich erstmal mit Normalisierung auseinander setzen.
     
Die Seite wird geladen...

Diese Seite empfehlen