Tabellen verknüpfen ?
Andreas
- datenbank
0 Mathias Bigge0 Matthias Jütte0 Ilja
Hallo,
ich habe noch nicht sehr viel Erfahrung mit dem Umgang mit MySql und DB. Nun gleich zu meiner Frage:
Ich habe 3 Tabellen in der DB, mit aut_increment wird die ID erhöht. Nun will ich aber das die Daten aus allen 3 Tabellen anhand der ID zusammenpassen.
Wie kann ich es ereichen das die ID mit auto_incement erhöht wird und das auf alle 3 Tabellen?
Ich kann zwar bei jedem speichern jede Tabelle mit auto_increment erhöhen lassen aber wenn es mal zu einen Fehler oder Abbruch kommt und eine nicht erhöht wird, passen ja alle Daten nicht mehr zusammen.
Kann man es so machen das z.B. Tabele1 erhöht wird und Tabelle 2 und Tabelle 3 mit der neuen ID beschrieben wird?
MfG. Andreas
PS. Bitte verständlich für einen Anfänger ohne englisch Kentnisse erklären.
Hi Andreas,
Du musst Schlüsselfelder definieren und kannst nicht einfach automatisch generierte Spalten nehmen.
Viele Grüße
Mathias Bigge
Hallo!
Kann man es so machen das z.B. Tabele1 erhöht wird und Tabelle 2 und Tabelle 3 mit der neuen ID beschrieben wird?
Ginge wohl, dann mußt du aber nach jedem Eintrag in Tab 1 die zuletzt eingetragene ID abfragen und diese dann in die anderen schreiben. Das setzt weiterhin voraus, daß auch wirklich NIX passiert und diese ID NIE in den anderen Tabellen vorhanden sein wird.
Eleganter macht man das allerdings durch eine weitere Tabelle zwischen jeweils zwei Tabellen:
ID1 | Eintrag ID1 | ID2 ID2 | Eintrag
------------- --------- -------------
1 | eins 1 | 1 1 | eins
2 | zwei 2 | 3 3 | zwei
Diese würdest du dann bei Abfragen über die Join-Syntax verknüpfen (näheres dazu in der MySQL Doku).
Gruß
Matthias
Hallo!
Hab gerade den Eintrag vom Mathias gelesen. Mein Beispiel bezieht sich natürlich auf eine n:m-Beziehung (jeder Datensatz einer Tabelle kann beliebig vielen Datensätzen einer anderen zugeordnet sein).
Das Verfahren mit den Schlüsseln gilt dann für 1:n.
Schau dir dazu mal das hier an: http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap5.htm#Chap5.1
Idealerweise auch noch den Rest des Dokuments ;-)
Gruß
Matthias
Hallo,
na dann werde ich das zu allererst durchlesen und mal schauen ob ich es verstehe, meißt ist das für Anfänger gar nicht so leicht. Wenn nicht werde ich halt die Variante mit dem Abfragen der ID von Tabelle 1 benutzen und die Einträge in Tab 2+3 mit ID schreiben.
Eigendlich sollte das ein sicherer Weg sein da keine Daten in Tab 2+3 geschrieben werden ohne das in Tab 1 was steht.
MfG. Andreas
Hallo!
meißt ist das für Anfänger gar nicht so leicht.
Da erzählst du uns nix neues ;-)
Eigendlich sollte das ein sicherer Weg sein da keine Daten in Tab 2+3 geschrieben werden ohne das in Tab 1 was steht.
Kann sicher klappen. Aber je mehr du in die Materie reinkommst, desto größer ist die Wahrscheinlichkeit, daß du irgendwann mal Wert auf einen gewissen Stil und Standard-Konformität legst. Und wenn du dann das machst, dann wirst du bereuen, je auch nur einen Gedanken daran verschwendet zu haben. Also, lieber ein wenig mehr Zeit investieren, und dafür richitg machen. Ist gar nicht schwer.
Gruß
Matthias
yo,
ich habe noch nicht sehr viel Erfahrung mit dem Umgang mit MySql und DB.
hier liegt auch die antwort für dein problem oder mit anderen worten, dein datenbank-design wird mit grosser wahrscheinlichkeit nicht ausgefeilt sein. in aller regel kommt es dann zu folgeprobleme, so wie du es gerade schilderst.
damit auch dir hier geholfen werden kann (hier werden sie geholfen, kommt schießlich von selfhtml und nicht von verona), musst du aber schon ein wenig mehr über den sinn und der umgebung erzählen, damit wir uns ein besseres bild machen können. alleine zu schreiben, dass du drei tabellen mit gleichen ids hast, reicht meiner meinung nach nicht aus.
Ilja