by Nobbie » 24. April 2008 14:46
Ein Foreign Key ist doch überhaupt nichts besonderes - das ist das allererste und kleinste einmal eins in SQL. Das ist nichts anderes als eine Spalte in einer Tabelle, die als Wert den Primary Key einer anderen Tabelle hat.
Nur stellt manches DBMs ein paar zusätzliche Funktionen zur Verfügung (wie beispielsweise referenzielle Integrität), die den Programmierer davor bewahren, die (in diesem Beispiel) Integrität der Daten (sprich: gibt es zum gespeicherten Fremschlüssel auch wirklich noch den Tabelleneintrag) sauber auszuprogrammieren. Aber bei vielen SQL-Systemen steht dieser Luxus nicht zur Verfügung (bei MyISAM beispielsweise nicht) - weswegen das Programm sich um die Datenintegrität kümmern muss.
Das ist nur EIN Beispiel - letztendlich weiß ich nicht, welche Vorteile oder Vereinfachungen InnoDB mit dem FOREIGN KEY anbietet, aber wer solche Dinge nutzt, macht sich abhängig von diesen Systemen (genau das, was Dir jetzt passiert ist). Und dabei hat SQL eigentlich einmal die Idee gehabt, portabel über verschiedene Systeme zu sein.
Ich kenne ja Dein Script nicht, aber Du mußt doch wissen, welche Funktionen Du dort benötigst und wie man sie ggf. anders programmieren kann. Aus dem Nichts heraus kann ich da nicht weiterhelfen.