1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

relationen erstellen

Dieses Thema im Forum "MySQL" wurde erstellt von Grinchi, 8 März 2011.

  1. Grinchi

    Grinchi Neuer Benutzer

    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
     
  2. Charly

    Charly Datenbank-Guru

    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
     
    Walter gefällt das.
  3. Grinchi

    Grinchi Neuer Benutzer

    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
     
Die Seite wird geladen...

Diese Seite empfehlen