Hallo Grinchi,
ein RDBMS kümmert sich leider nicht darum wie Du die Daten in die Datenbank rein und wieder raus bekommst.
Zu deiner Tabelle Relation:
Du benötigts in dieser Tabelle keinen Relation_ID Primary Key.
Wenn Du mit der Datenmodellierung anfängst erstellts Du in der Regel erst mal ein Theoretiches Modell (z.B. ER Modell).
Interpret --> hat geschrieben / geschrieben von <-- Album
Du hast also 2 Entitäten die mit einer Relation verbunden sind.
Um das in ein physisches Modell umzuwandeln musst Du aus der Relation (In Deinem Fall eine N:M-Relation) eine so genannte Hilftabelle machen.
Also nimmst Du deine Schlüsselattribute Interpret_ID und Album_ID und setzt sie in die Hilftabelle.
Resultierendes Schema deiner Datenbank:
Interpret {
Interpret_ID, InterpretName}
Album {
Album_ID, AlbumName}
Relation {
Interpret_ID, Album_ID}
Die Kombination aus Interpret_ID und Album_ID sollte in der Hilftabelle eindeutig sein. Also habe ich einen PK daraus gemacht.
Durch die Fremdschlüsseleinschränkungen in der Relation-Tabelle ist es nicht möglich Werte einzufügen die nicht in den anderen Tabellen vorahnden sind.
Durch die Primary Key einschränkung ist es nicht möglich eine Kombination aus Interpret_ID und Album_ID einzufügen die schon vorhanden ist.
F: Woher weis die Relation-Tabelle was in Ihr stehen soll?
A. Sie weis es nicht. Sie weis nur was nicht drin stehen soll.
Wenn Du wissen willst welche Alben von Welchem Interpret geschrieben worden sind musst Du ein Select schreiben das die 3 Tabellen miteinander verknüpft
Code:
SELECT I.InterpretName, A.AlbumName
FROM Interpret AS I
JOIN Relation AS R ON R.Interpret_ID=I.Interpret_ID
JOIN Album AS A ON R.Album_ID = A.Album_ID
Das Einfügen von Album und Interpret ist simpel.
Wenn Du eine Verbindung zwischen einem Interpreten und einem Album erzeugen willst musst Du die IDs der beiden in die Relation-Tabelle einfügen.
Code:
INSERT INTO Relation (Album_ID, Interpret_ID)
SELECT A.Album_ID, I.Interpret_ID
FROM Interpret AS I, Album AS A
WHERE InterpretName = <Name des Interpreten>
AND AlbumName = <Name des Albums>
Alternativ merkst Du dir die IDs beim einfügen in die Album- und Interpret-Tabellen und fügst sie dann in die Relation Tabelle ein.
Gruß Charly