Datensatz mit Listen ?
Markus Bertram
- datenbank
Hallo Leute!
Vorweg: allzugut kenn ich mich mit dem Thema Datenbanken
(noch) nicht aus, hab aber schon die Eine oder Andere
"typische" DB-gestützte Webseite realisiert. Nun hab ich
hier jedoch ein Problem, bei dem ich mir nicht so sicher
bin wie das elegant zu lösen ist:
Jeder Datensatz soll nicht nur normale Felder enthalten,
sondern auch Listen. Ein Beispiel wäre eine Seminar-Datenbank.
Zu jeder Person (Seminarleiter) gibt es dort eine Liste mit
Veranstaltungen (jeweils mit Datum,Ort usw.)
Diese soll ebenfalls zB. durchsucht, nach Datum selektiert
etc. werden können. (ein einfaches Textfeld mit der Liste
darin tuts also nicht)
Eigentlich also nichts wirklich Ungewöhnliches, aber
gefunden habe ich zu dem Thema bisher noch nichts.
(Google, hier)
Meine Idee war: jedesmal, wenn man einen neuen Datensatz
anlegt, legt man auch eine weitere Table an, welche
die gewünschte Liste enthalten kann. die Datensätze der
"Haupttabelle" enthalten dann nur ein Feld mit dem
jeweiligen Table-Namen.
Ist das die übliche Lösung für eine solche Aufgabe?
Es werden dann ja schon sehr viele (uU. ein paar tausend)
Tabellen angelegt, kann sowas Probleme geben?
Auf Anregungen (oder Bestätigung) hoffend -
Ciao!
M.
Moin!
Meine Idee war: jedesmal, wenn man einen neuen Datensatz
anlegt, legt man auch eine weitere Table an, welche
die gewünschte Liste enthalten kann. die Datensätze der
"Haupttabelle" enthalten dann nur ein Feld mit dem
jeweiligen Table-Namen.
Ist das die übliche Lösung für eine solche Aufgabe?
Nein.
Üblich ist, dass du die eine Tabelle mit dem Seminarleiter hast, und nur _eine_ weitere Tabelle mit den Veranstaltungsdaten. Der Seminarleiter kriegt eine eindeutige ID, welche in jedem Datensatz in der Veranstaltungstabelle ebenfalls angegeben ist.
Mit JOIN kannst du in der Datenbankabfrage dann alle Seminarleiter und ihre zugehörigen Veranstaltungen abfragen. Und wenn du die Seminarleiter-ID kennst, kannst du natürlich auch nur für diesen Seminarleiter seine Veranstaltungen abfragen (SELECT * FROM veranstaltungen WHERE leiterid = 23).
- Sven Rautenberg
Hi!
Üblich ist, dass du die eine Tabelle mit dem Seminarleiter hast,
und nur _eine_ weitere Tabelle mit den Veranstaltungsdaten.
Jetzt ist bei mir der Groschen gefallen. :-) Das ist natürlich viel
eleganter als die "Datenbank-Quälerei" die ich vorhatte.
hat mir sehr geholfen, 1000Dank!
- Sven Rautenberg
Ciao!
M.