Stefan: DB Aufbau und Auswahl - Was nicht ganz verstanden.

Beitrag lesen

Hallo,
habe da was nicht ganz verstanden und hoffe auf Klärung.
Habe z.B. eine Filmdatenbank, in der u.a. die Tabellen Film (T_Film) und Schauspieler (T_Artist)enthalten sind. Jetzt kann ja jeder Film mehrere Schauspieler haben und jeder Schauspieler kann in mehreren Filmen mitspielen. Also brauche ich eine Zwischentabelle um die Besetzung eines Filmes eindeutig zu bestimmen (T_Cast).
Soweit so gut, nun aber die Frage muß ich in der Tabelle (T_Cast) für jeden Schauspieler eine eigene Spalte anlegen (Artist_1, Artist_2, ....) oder kann ich einfach eine Spalte anlegen und dort
die ID Nummern aller im Film mitspielenden Schauspieler angeben (Spalte: Cast, Werte: (1,4,7,25,etc.)?
Falls ersters der Fall ist, müßte ich ja beliebig viele Spalten anlegen um die Vollständigkeit zu gewähren - das kann aber nicht die Lösung sein oder? (falls doch wie finde ich heraus wieviele Spalten eine Zeile hat? Kann ja ein Kammerspiel mit 2 Schauspielern sein oder ein Monumentalfilm mit 100 Schauspielern)

Falls zweites der Fall ist wie müßte dann die Abfrage in z.B. MySql aussehen?
In etwa so?

Tabelle Film enthält:
Film_ID (primary key)
Cast_ID (foreign key auf Tabelle Cast)
Film_Titel
etc ...

Tabelle Cast enthält:
Cast_ID (primary key)
Film_ID (foreign key auf Tabelle Film)
Artist_ID (foreign key auf Tabelle Artist)
etc ...

Tabelle Artist enthält:
Artist_ID (primary key)
Artist_Name
etc ...

(Ausgabe erfolgt über PHP)
$sql= "select T_Film.Film_ID, T_Film.Film_Titel, T_Cast.Cast_ID, T_Artist.Artis_ID, T_Artist.Artist_Name from T_Film, T_Cast, T_Artist where T_Film.Cast_ID=T_Cast.Cast_ID && T_Artist.Artist_ID Like %T_Cast.Artist_ID% Group By T_Film.Film_ID Order By T_Artist.Artist_Name";

$erg = mysql_query($sql)

while ($Aus = mysql_fetch_array($erg))
{
echo $Aus["Film_Titel"];
echo $Aus["Artist_Name"] ."<br>";
}

Ist das so richtig?
Falls nicht, was habe ich falsch gemacht?

Hoffe auf Hilfe, danke!
Grüße,
Stefan