duplicate entry Problem

  • Hallo zsm,


    ich habe eine Tabelle Kunde und eine Tabelle Ansprechpartner.

    Bei den Ansprechpartner kann es einen kaufmann und einen Techniker geben. Es kann aber auch nur einen Kaufmann geben. Jedoch kann es niemals nur einen Techniker geben.

    also einem kunden werden entweder ein kaufmann oder ein kaufmann und ein Techniker zugewiesen.


    Jetzt habe ich folgendes Problem, In meiner Kundentabelle ist die Kundennr PK und in der Ansprechpartnertabelle ist die Kundennr FK

    wenn ich jetzt zwei Inserts in Ansprechpartner für einen Kunden machen will, kriege ich den Fehler duplicate entry error.


    Aber ich verstehe das problem nicht. warum kann man nicht zwei inserts auf einen kunden mit zwei verschiedenen personen geben:

    mein code sieht so aus:


    das erste insert wird gemacht und das zweite nicht wegen dem duplicate entry

    $kundennr ist FK in ansprechpartner und PK in kunde

  • Grundsätzlich solltest Du froh sein, dass das nicht funktioniert, denn Du knallst ungefilterte Formulardaten in die Datenbank.

    Ich sag mal so: Kann man machen... Wenn einem alles egal ist...


    Zu dem Duplicate-Problem: mach aus dem FK eine INDEX-Spalte, dann sollte das gehen.

  • Grundsätzlich solltest Du froh sein, dass das nicht funktioniert, denn Du knallst ungefilterte Formulardaten in die Datenbank.

    Ich sag mal so: Kann man machen... Wenn einem alles egal ist...


    Zu dem Duplicate-Problem: mach aus dem FK eine INDEX-Spalte, dann sollte das gehen.

    thx hab ich gemacht. aber vom verständnis warum ist das jetzt nicht problematisch... ist ja auch doppelt vorhanden oder steh ich aufm schlauch?

    also die einträge sind ja trotzdem jetzt doppelt da

  • Ja,aber der Unterschied zu einem INDEX und einem KEY ist der, dass ein KEY i.d.R. UNIQUE sein muss.

    Beim FOREIGN KEY war ich mir grad nicht ganz sicher, aber wenn es mit dem INDEX geht, wird das auch für den FOREIGN KEY gelten.

  • DUPLICATE - das heißt, dass ein Feld UNIQUE ist|war.


    Aber ohne genauer Fehlermeldung, kann man nur raten.

    Und ein SHOW CREATE TABLE `my_tbl_name` wäre auch nicht verkehrt.


    Ein FK kann n mal vorkommen, solange er keinen UNIQUE INDEX bekommt.

    FK "sagt nur", dass es in der Haupttabelle einen Eintrag mit der Value in der betreffenden Zeile geben muss.


    Im Bsp hat user mit id 1 drei Einträge - also 3 Adressen.

    User 2 nur eine.

    User 3 (noch) keine.


    Mit einem Foreign Key auf user_id wird es nicht möglich sein,

    in tbl user_address eine Zeile mit user_id 4 einzutragen.

    Denn es gibt keinen user mit id 5 in der Tabelle user.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!