relationen erstellen

Grinchi

Neuer Benutzer
Beiträge
2
Hallo erstmal

ich habe mich neu mit Datenbanken beschäftigt und habe eine kleine Datenbank, zum Test, mit phpMyAdmin geschrieben, indem es 3 Tabellen gibt:
Interpret Felder: Interpret_ID, Name
Album Felder: Album_ID, Name
Relation Relation_ID, Interpret_ID, Album_ID
das prinzip einer relationalen Datenbank habe ich (hoffentlich) verstanden,
aber wie setzte ich jetzt das um das die Tabelle Relation erkennt das er die Interpret und Album_ID nehmen soll??

danke schonmal

Grinchi
 
Werbung:
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
 
Werbung:
vielen dank Charly hat echt geholfen, dank von ein paar Schlagworten hab ich jetzt das was ich brauche.
Hast echt meinen Tag gerettet jetzt kann ich weiterarbeiten

nochmal danke und viel Spaß noch

Grinchi
 
Zurück
Oben