Hallo,
kann mir jemand sagen, ob die REFERENCES Klausel bei Tabellen anlegen (CREATE) überhaupt eine Auswirkung hat?! Wenn ja welche? Ich meine explizit mySQL nicht SQL.
mysql REFERENCES Klausel
- King Crusty
- Mitglied
- Beiträge: 209
- Registriert: 20.04.2002 11:58
- Wohnort: Deggendorf - Altötting
- Kontaktdaten:
Bei MySQL unterstützt nur der "InnoDB" Tabellentyp foreign keys. Siehe auch http://www.mysql.com/doc/en/ANSI_diff_Foreign_Keys.html und die dort verlinkten Seiten
- King Crusty
- Mitglied
- Beiträge: 209
- Registriert: 20.04.2002 11:58
- Wohnort: Deggendorf - Altötting
- Kontaktdaten:
Ich sehe gerade das gibt es auch auf deutsch: http://www.mysql.com/doc/de/ANSI_diff_Foreign_Keys.html
Fremdschlüssel dienen dazu, die Dokumentation der Beziehungen direkt in der DB zu haben und Inkonsistenzen zu vermeiden. Auf phpBB bezogen würde das z.B. bedeuten, daß man keinen Datensatz in die phpbb_posts Tabelle einfügen kann, wenn kein Datensatz in der phpbb_topics Tabelle mit der entsprechenden topic_id existiert. Oder (ON DELETE CASCADE) daß beim Löschen eines Themas automatisch alle Beiträge entfernt werden, ohne eine zusätzliche DELETE-Anfrage ausführen zu müssen. Oder generell gesagt, Es werden Teile der Programmlogik aus dem Code in die Datenbank verschoben.
Fremdschlüssel dienen dazu, die Dokumentation der Beziehungen direkt in der DB zu haben und Inkonsistenzen zu vermeiden. Auf phpBB bezogen würde das z.B. bedeuten, daß man keinen Datensatz in die phpbb_posts Tabelle einfügen kann, wenn kein Datensatz in der phpbb_topics Tabelle mit der entsprechenden topic_id existiert. Oder (ON DELETE CASCADE) daß beim Löschen eines Themas automatisch alle Beiträge entfernt werden, ohne eine zusätzliche DELETE-Anfrage ausführen zu müssen. Oder generell gesagt, Es werden Teile der Programmlogik aus dem Code in die Datenbank verschoben.
- King Crusty
- Mitglied
- Beiträge: 209
- Registriert: 20.04.2002 11:58
- Wohnort: Deggendorf - Altötting
- Kontaktdaten: