Mailinglisten-Archive |
Hi, Markus Wolf: > gibt es eigentlich einen tollen Trick, wie man bei mysql folgendes machen > kann. > > Tab1 : Kunden > Tab2 : bestellkopf > Tab3 : Bestdet. > > Wenn ich letzt einen Kunde lösche, dann sollen alle Daten aus Tab2 und Tab3 > gelöscht werden, die mit dem Kunden zu tun haben. > > Unter Access nennt man das ref. Integr.. Wie erzeugt man sowas mit SQL unter > mysql? > Gar nicht. Du schreibst dir eine zentrale Funktion delete_kunde in deinem Programm, die das für dich erledigt. Alle anderen Programme kriegen keine Löschberechtigung auf die Kundentabelle; und wenn du ganz böse ... ahem, vorsichtig sein willst, dann dürfen sie auch die Kundennummern nicht verändern. Der Vorteil dieser Lösung ist, daß diese Funktion erstmal prüfen kann, ob sie den Kunden überhaupt löschen darf (zB wenn noch Forderungen offen sind). MySQL hat absichtlich keinerlei solche Referenzprüfungen, zum einen weil sie die Datenbank verlangsamen, zum anderen weil du da nur einen Zyklus drinhaben mußt, und schon kannst du ohne ein Spezialtool, das die Prüfung zeitweise ausschaltet, nicht einmal mehr Daten von einer Sicherung holen. Steht aber alles in der Doku... -- Matthias Urlichs | noris network GmbH | smurf_(at)_noris.de | ICQ: 20193661 The quote was selected randomly. Really. | http://www.noris.de/~smurf/ -- Accountants are good with figures. --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive