Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabellen in Beziehung setzen!!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabellen in Beziehung setzen!!

    Hi Leute!

    möchte mir gerne ne Video-Datenbank auf bauen mit Stammdaten, Filme und welche ausgeleihen werden. also brauche ich 3 Tabellen. habe die Stammdaten so geschrieben
    Code:
    CREATE TABLE `stammdaten` (
    `id_stammdaten` INT( 6 ) NOT NULL AUTO_INCREMENT ,
    `benutzername` VARCHAR( 50 ) NOT NULL ,
    `nachname` VARCHAR( 50 ) NOT NULL ,
    `vorname` VARCHAR( 50 ) NOT NULL ,
    `passwort` VARCHAR( 50 ) NOT NULL ,
    `email` VARCHAR( 75 ) NOT NULL ,
    `datum` DATETIME NOT NULL , // keine ahnung ob das richtig ist, soll das aktuelle Datum automatisch nehmen
    PRIMARY KEY ( `id_stammdaten` ) 
    );
    und die film Tabelle so:
    Code:
    CREATE TABLE `filme` (
    `id_filme` INT( 6 ) NOT NULL AUTO_INCREMENT ,
    `filmname` VARCHAR( 50 ) NOT NULL ,
    `filmkategorie` VARCHAR( 50 ) NOT NULL ,
    PRIMARY KEY ( `id_filme` ) 
    );
    nun will ich die Tabelle ausgeliehen schreiben, aber weiss nicht wie ich Beziehungen von Stammdaten und Filme dort hinheinbekomme
    die Tabelle 'ausgeliehen' sollte so aussehen

    id_ausgeliehem
    benuzername //von stammdaten
    filmname // von filme
    filmkategorie // von filme
    ausleihdatum
    zurückdatum

    kann mir jemand helfen

    schon mal Dank im Voraus

  • #2
    Wenn du deine Datenbank nur einigermassen normalisiert haben willst, so wird deine Tabelle "Ausgeliehen" folgendermassen aussehen:
    • id_stammdaten // Fremdschlüssel Stammdaten
      id_filme // Fremdschlüssel Filme
      ausleihdatum
      zurückdatum
    Alles andere ist ja in den beiden andern Tabellen enthalten und kann jederzeit von dort bezogen werden. Es ist ja ein wesentliches Merkmal von relationalen Datenbanken, das gleiche Daten nur einmal gespeichert werden.

    Kommentar


    • #3
      und wie schreibe ich Tabelle mit den Fremdschlüssel hab ´null Ahnung davon

      Kommentar


      • #4
        Das musst du nicht schreiben, MySQL kennt das eh nicht, war mehr ein Hinweis. Und die Tabelle erstellst du ganz normal, wie deine anderen, z.B. so:
        Code:
        CREATE TABLE ausgeliehen (
            id_stammdaten INT(6) NOT NULL, 
            id_filme INT(6) NOT NULL  ,
            ausleihdatum DATE NOT NULL,
            zurueckdatum DATE,
            PRIMARY KEY ( id_stammdaten, id_filme )
        );
        Die Beiden Fremdschlüssel stellen dann die Beziehung (Relation) zu den andern Tabellen her. Wenn du dann wissen willst, wer am 22. Juli welche Filme ausgeliehen hast, kannst du auf die folgende Art Abfragen:
        Code:
        SELECT s.vorname, s.nachname, f.filmname, f.filmkategorie
        FROM stammdaten
        INNER JOIN ausgeliehen a on s.id_stammdaten = a.id_stammdaten
        INNER JOIN filme f on a.id_filme = f.id_filme
        WHERE ausleihdatum = '2004.07.22';
        Und noch zwei Dinge sind mir aufgefallen:
        Zitat von Boennchen
        `datum` DATETIME NOT NULL , // keine ahnung ob das richtig ist, soll das aktuelle Datum automatisch nehmen
        Falls du das Datum automatisch haben willst, musst du den Typ "timestamp" wählen. Allerdings ist es eine kleine Sache, beim Erfassen der Stammdaten hier noch das Datum (mit now()) einzugeben.
        Und da mehrere Filme zur gleichen Kategorie gehören können, müsste dazu eigentlich eine eigene Tabelle erstellt werden.

        Kommentar


        • #5
          ja cool danke!

          hast mir sehr weitergeholfen :P

          Kommentar

          Lädt...
          X