Announcement

Collapse
No announcement yet.

Foreign Key schreibt Daten in jeden Eintrag rein

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Foreign Key schreibt Daten in jeden Eintrag rein

    Hi zusammen,

    Ich habe folgendes Problem:

    Ich habe 3 Tabellen erstellt:
    1) teams
    2) members
    3) cars

    DROP DATABASE IF EXISTS F1DB;

    CREATE DATABASE F1DB;

    USE F1DB;

    create table Teams (
    Team_ID int AUTO_INCREMENT NOT NULL,
    Team_Name varchar(255) NOT NULL,
    CONSTRAINT pk_Teams PRIMARY KEY(Team_ID),
    );

    CREATE TABLE Members(
    Member_ID int AUTO_INCREMENT NOT NULL,
    Member_FN varchar(255) NOT NULL,
    Member_LN varchar(255) NOT NULL,
    Members_Teams_ID int,
    CONSTRAINT pk_MEMBERS PRIMARY KEY(Member_ID),
    CONSTRAINT fk_Teams FOREIGN KEY (Members_Teams_ID) REFERENCES Teams(Team_ID)
    );

    CREATE TABLE Cars (
    Car_ID int AUTO_INCREMENT NOT NULL,
    Car_Producer varchar(255) NOT NULL,
    Car_Modell varchar(255) NOT NULL,
    Members_Cars_ID int,
    CONSTRAINT pk_Cars PRIMARY KEY(Car_ID),
    CONSTRAINT fk_Members FOREIGN KEY (Members_Cars_ID) REFERENCES Members(Member_ID)
    );



    Ich habe nun die Tabellen mit Foreign Keys verbunden (wie oben zu sehen ist), wenn ich jetzt einen Eintrag in Members hinzufüge und Team 1 auswähle schreibt er den Member in jedes Team hinein, bei Cars ist es das gleiche!
    Ich komme einfach nicht drauf was es sein kann
    verwendet wird:
    Server-Typ: MariaDB
    Server-Version: 10.1.21-MariaDB - mariadb.org binary distribution


    Danke im voraus
    Aleks

  • #2
    Was heisst "schreibt er den Member in jedes Team hinein"?
    Wer wann wo schreibt da mit welchem SQL?
    Christian

    Comment


    • #3
      Hi Christian,

      Danke für die schnelle Antwort
      Mein Insert Befehl:
      INSERT INTO teams (team_name) VALUES ("Team1");
      INSERT INTO teams (team_name) VALUES ("Team2");

      INSERT INTO members (member_FN, member_LN, members_Teams_id) VALUES ("User1" , "User1", 1);
      INSERT INTO members (member_FN, member_LN, members_Teams_id) VALUES ("Benutzer2" , "Benutzer2", 2);

      hab dir den Screenshot vom PHPmyadmin angehängt
      SQL.JPG

      Vielen Dank
      Aleks

      Comment


      • #4
        Originally posted by Aleks98 View Post
        wenn ich jetzt einen Eintrag in Members hinzufüge und Team 1 auswähle schreibt er den Member in jedes Team hinein, bei Cars ist es das gleiche!
        Das hier aufgeführte Datenmodell verrät auch uns nicht, was "er" da macht. Wer ist "er"?
        Es gibt grob 2 Möglichkeiten.
        "Er" ist ein Trigger oder er ist eine Enwicklungsumgebung, die SQL Code generiert und sie ausführt, wenn das darin entwickelte Programm gestartet wird.

        Du müsstest etwas mehr zu Deinem Programm verraten.

        Kleine Bemerkung am Rande: Es ist normalerweise üblich, Singular in Tabellenbezeichnungen zu verwenden. Die allermeisten Tabellen dürften zwar mehrere Datensätze enthalten, aber da es sowieso genauso ist, spart man sich gerne den Plural.
        Gruß, defo

        Comment


        • #5
          Deine Abfrage ist falsch
          select * from teams, members
          erzeugt ein Kreuzprodukt

          select * form teams, members where team_id=members_id
          Christian

          Comment


          • #6
            oh fail
            Christian vielen Dank

            Comment

            Working...
            X