db-struktur

db-struktur

am 14.01.2006 23:45:32 von Mark Knochen

hallo,

mal eine kurze Frage:

ich will einen Terminkalender für einen Club erstellen,
jeder Termin kann Links zugewiesen bekommen und die
einzelnen Bands / Literaten / DJs... usw sollen
später mal in einem Archiv gelistet werden und zu den
vergangenen terminen verlink werden.

tabelle_termine:
id
datum
titel
text
bild

tabelle_links:
id
termin_id
link



Nun müsste ich, um einfach an eine Liste der Bands zu kommen,
noch die tabelle_termine um vielleicht 5 Spalten erweitern,
um die einzelnen Bands gesondert zu erfassen, damit ich danach suchen kann.

Oder ich erstelle eine weitere Tabelle:

tabelle_kuenstler:
id
name
termin_id


Welche Variante ist da wohl die bessere.

Hinzu kommt, dass man dann aber, wenn man die Termine eingibt, die
einzelnen Künstler nochmal gesondert eingeben muss, aber das ist
wohl nicht anders möglich, oder?

Danke

Mark

Re: db-struktur

am 15.01.2006 09:47:48 von Helmut Chang

Mark Knochen schrieb:
> hallo,
>
> mal eine kurze Frage:
>
> ich will einen Terminkalender für einen Club erstellen,
> jeder Termin kann Links zugewiesen bekommen und die
> einzelnen Bands / Literaten / DJs... usw sollen
> später mal in einem Archiv gelistet werden und zu den
> vergangenen terminen verlink werden.

man Normalform.

Einfach gesagt:

Du hat Termine, Links und Künstler.

Ein Termin kann mehrere Links haben, also 1:n-Relation:

+------------+
| Termin |
+------------+
| *idTermin* |
| datum |
| ... |
+------------+

+------------+
| Link |
+------------+
| *url* |
| /idTermin/ |
| ... |
+------------+

*Primary Key*, /Foreign Key/

Kann ein Link auch mehreren Terminen zugewiesen werden? Dann hast du
n:m, das man mit einer Zwichentabelle auflöst:

+------------+
| Termin |
+------------+
| *idTermin* |
| datum |
| ... |
+------------+

+------------+
| Link |
+------------+
| *url* |
| ... |
+------------+

+---------------+
| TerminHatLink |
+---------------+
| *idTermin* |
| *url* |
+---------------+

Ebenso bei den Künstlern. Da bei einem Termin prinzipiell mehrere
Künstler auftreten können, und ein Künstler hoffentlich keine
Eintagsfliege ist, sondern öfters auftritt, wiederum n:m, das nach dem
selben Schema zu modellieren ist.

gruss, heli