Mik3e
Erfahrenes Mitglied
Hi,
Wir starten gerade mit der Entwicklung eines neuen Projekts, dass schon auf MySQL 5.0 aufsetzt. Nachdem es hier auch foreign constraints gibt, wollte ich mal wissen, ob schon jemand Erfahrung damit hat bzw. auf was man achten sollte.
Ein aktuelles (vereinfachtes) Beispiel, wo ich foreign constraints einsetzen möchte:
pk_* = Attribut mit Primary Key
fk_* = Attribut mit Foreign Key (Index)
Tabelle "tbl_produktkategorie":
pk_produktkategorie_id
----------------------------------
1
2
Tabelle "tbl_kategorie_bezeichnung"
fk_produktkategorie_id | language | name
----------------------------------------------------------------------
1 | de | "Kategorie 1"
1 | en | "Category 2"
2 | de | "Kategorie 2"
2 | en | "Category 2"
Hier bieten sich Foreign Constraints geradezu an (vor allem bei DELETE).
Ich habe nun in der 2. Tabelle (tbl_kategorie_bezeichnung) folgende Beziehung definiert:
Funktioniert soweit auch gut. Lösche ich z.B. den Datensatz "1" aus der Tabelle "tbl_produktkategorie" dann werden auch automatisch die ersten beiden Datensätze aus der Tabelle "tbl_kategorie_bezeichnung" gelöscht.
Nachdem ich aber nun zum ersten Mal mit Foreign Constraints unter MySQL arbeite, wüßte ich gerne, welche "Fußangeln" es gibt und bei wo man besonders vorsichtig sein sollte...
Danke & Ciao,
Mike
Wir starten gerade mit der Entwicklung eines neuen Projekts, dass schon auf MySQL 5.0 aufsetzt. Nachdem es hier auch foreign constraints gibt, wollte ich mal wissen, ob schon jemand Erfahrung damit hat bzw. auf was man achten sollte.
Ein aktuelles (vereinfachtes) Beispiel, wo ich foreign constraints einsetzen möchte:
pk_* = Attribut mit Primary Key
fk_* = Attribut mit Foreign Key (Index)
Tabelle "tbl_produktkategorie":
pk_produktkategorie_id
----------------------------------
1
2
Tabelle "tbl_kategorie_bezeichnung"
fk_produktkategorie_id | language | name
----------------------------------------------------------------------
1 | de | "Kategorie 1"
1 | en | "Category 2"
2 | de | "Kategorie 2"
2 | en | "Category 2"
Hier bieten sich Foreign Constraints geradezu an (vor allem bei DELETE).
Ich habe nun in der 2. Tabelle (tbl_kategorie_bezeichnung) folgende Beziehung definiert:
Code:
fk_produktkategorie_id=tbl_produktkategorie->pk_produktkategorie_id
ON DELETE: CASCADE
ON UPDATE: CASCADE
Nachdem ich aber nun zum ersten Mal mit Foreign Constraints unter MySQL arbeite, wüßte ich gerne, welche "Fußangeln" es gibt und bei wo man besonders vorsichtig sein sollte...
Danke & Ciao,
Mike