Christian1982: schlechtes Datenbankkonzept

Hallo.
Ich habe mit PHP und MySQL ein Voting-System gemacht.
Die Dantenbankfelder sind wie folgt angelegt(alles in einer Tabelle).

id|frage|erstelldatum|antwort_1|antwort_2|antwort_x|vote_1|vote_2|vote_x

Das Problem ist: Sie ist nicht normalisiert
und vorallem: die Antworten sind begrenzt.

Weiß jemand Rat oder Anregungen?
Ich bin für alles dankbar.

Viele Grüße,
Christian

  1. Sup!

    Das Problem ist: Sie ist nicht normalisiert
    und vorallem: die Antworten sind begrenzt.
    Weiß jemand Rat oder Anregungen?
    Ich bin für alles dankbar.

    Sicher. Normalisiere die Datenbank bis zum nötigen Grad.
    Mach' eine eigene Tabelle für "Antworten" und/oder für "Beiträge" und/oder "Kommentare".

    Gruesse,

    Bio

    --
    Ich bin ein Mobber - mein Posting tut mir leid! EHRLICH!!!
    sh:( fo:) ch:] rl:} br:> n4:& ie:{ mo:) va:) de:] zu:) fl:( ss:) ls:]
    1. Genau damit hab ich Schwierigkeiten, wie ich die Tabelle Antworten strukturieren soll, damit ich beliebige viele Antworten hineinbekomme.

      Wenn ich:

      Antwort_1|Antwort_2|Antwort_3|... als Felder definiere, hab ich ja dann auch wieder ne begrenzte Zahl ?

      1. Hi,

        Antwort_1|Antwort_2|Antwort_3|... als Felder definiere, hab ich ja dann auch wieder ne begrenzte Zahl ?

        antwort_id | frage_id | text

        dasselbe gilt für die Fragen

        fragen_id | text | erstelldatum

        und fürs voting

        vote_id | antwort_id | vote

        wobei die erstgenannten id's Primärschlüssel sind
        Id's die in den Tabellen och vorkommen sind logischerweise Fremdschlüssel

        ich weiss jetzt nicht ob es vollständig ist.

        hilfts?

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. Genau das war es...
          Vielen Dank.

          Aber eins verstehe ich nicht: Warum hast du für das Voting ne extra Tabelle gemacht.
          Man kann doch das Attribut "Vote" auch in die Tabelle "Fragen" integrieren, oder täusche ich mich da etwa?

      2. Sup!

        Es sind verschiedenen Schemata denkbar - z.B.

        (fk = Fremdschlüssel, pk = Primärschlüssel)

        Für jeden Beitrag:

        Tabelle beitraege:
        antwort_auf_beitrag_fk | beitrag_pk | text

        Ein "Erstbeitrag" hätte einfach NULL im ersten Feld.
        Antwortbeiträge erkennt man daran, daß sie im ersten Feld die ID des Beitrags haben, auf die sie Antworten darstellen.
        So kann man rekursiv alle Antworten auf einen Beitrag und Antworten auf Antworten finden - wenn es eine Baumstrukur geben soll.

        Dazu wäre dann denkbar, eine Tabelle kommentare zu machen
        kommentar_zu_beitrag_fk | kommentar_pk | text

        Gruesse,

        Bio

        --
        Ich bin ein Mobber - mein Posting tut mir leid! EHRLICH!!!
        sh:( fo:) ch:] rl:} br:> n4:& ie:{ mo:) va:) de:] zu:) fl:( ss:) ls:]