schlechtes Datenbankkonzept
Christian1982
- datenbank
0 Bio0 Christian1982
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
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
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 ?
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
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?
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