Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 6 von 6
  1. #1
    Neuer Benutzer
    Registriert seit
    30.10.2017
    Beiträge
    3

    Frage 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. #2
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.261

    Standard

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

  3. #3
    Neuer Benutzer
    Registriert seit
    30.10.2017
    Beiträge
    3

    Standard

    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

  4. #4
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.291

    Standard

    Zitat Zitat von Aleks98 Beitrag anzeigen
    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

  5. #5
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.261

    Standard

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

    select * form teams, members where team_id=members_id
    Christian

  6. #6
    Neuer Benutzer
    Registriert seit
    30.10.2017
    Beiträge
    3

    Standard

    oh fail
    Christian vielen Dank

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •