PythonQ 240-8XX Manual de usuario Pagina 64

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 63
Kapitel 2: Vorb emerkungen zum deutschen Handbuch 43
2.7.4.5 Fremdschl¨ussel
Ab MySQL-Serverversion 3.23.44 unterst¨utzen InnoDB-Tabellen die Pr¨ufung auf Fremd-
schl¨usselbeschr¨ankungen wie CASCADE, ON DELETE und ON UPDATE.
Bei anderen Tabellentypen parst der MySQL-Server die FOREIGN KEY-Syntax in CREATE
TABLE-Befehlen lediglich, benutzt oder speichert diese Informationen jedoch nicht.
Beachten Sie, dass Fremdschl¨ussel in SQL nicht dazu benutzt werden, um Tabellen zu
verkn¨upfen, sondern haupts¨achlich, um die referentielle Integrit¨at zu ¨uberpr¨ufen (Fremd-
schl¨ussel-Restriktionen). Wenn Sie durch ein SELECT-Statement Ergebnisse aus mehreren
Tabellen erhalten wollen, tun Sie dies, indem Sie Tabellen verkn¨upfen (Join):
SELECT * FROM table1,table2 WHERE table1.id = table2.id;
Siehe Abschnitt 7.4.1.1 [JOIN], Seite 438. Siehe Abschnitt 4.5.6 [example-Foreign keys],
Seite 162.
Wenn Fremdschl¨ussel (FOREIGN KEYs) als Beschr¨ankung benutzt werden, m¨ussen sie nicht
verwendet werden, wenn eine Applikation Zeilen in der korrekten Reihenfolge in MyISAM-
Tabellen einf¨ugt.
Bei MyISAM-Tabellen onnen Sie das Problem, dass ON DELETE... nicht implementiert
ist, dadurch umgehen, dass Sie das entsprechende DELETE-Statement einer Applikation
hinzuf¨ugen, wenn Sie Datens¨atze aus einer Tabelle oschen, die Fremdschl¨ussel hat. In
der Praxis ist das genauso schnell (in einigen allen schneller) und wesentlich portabler, als
wenn Sie Fremdschl¨ussel benutzen w¨urden.
Beim MySQL-Server 4.0 onnen Sie das oschen aus mehreren Tabellen verwenden (Multi-
Table Delete), um mit einem einzigen Befehl Zeilen aus vielen Tabellen zu oschen. Siehe
Abschnitt 7.4.6 [DELETE], Seite 446.
Die FOREIGN KEY-Syntax ohne ON DELETE ... wird oft von ODBC-Applikationen verwendet,
um automatische WHERE-Klauseln zu erzeugen.
Die FOREIGN KEY-Implementation wird k¨unftig so erweitert werden, dass die Informatio-
nen in der Tabellendefinitionsdatei gespeichert werden und von mysqldump und ODBC
a/jointfilesconvert/293675/bgerufen werden onnen. F¨ur einen sp¨ateren Zeitpunkt ist vorgesehen, auch f¨ur MyISAM-
Tabellen Fremdschl¨usselbeschr¨ankungen hinzuzuf¨ugen.
Denken Sie daran, dass Fremdschl¨ussel oft falsch eingesetzt werden, was zu schweren Prob-
lemen f¨uhren kann. Selbst wenn sie korrekt verwendet werden, sind sie keine Zauberl¨osung
f¨ur das Problem der referenziellen Integrit¨at, doch onnen sie solche Dinge erleichtern.
Einige Vorteile der Erzwingung von Fremdschl¨usselbeschr¨ankungen sind:
Korrekte Konzeption der Beziehungen vorausgesetzt erschweren es Fremd-
schl¨usselb eschr¨ankungen einem Programmierer, in eine Datenbank Inkonsistenzen
einzuf¨uhren.
Kaskadierende Updates und Deletes onnen den Applikationscode vereinfachen.
Korrekt konzipierte Fremdschl¨usselregeln erleichtern das Dokumentieren von Beziehun-
gen zwischen Tabellen.
Nachteile:
Fehler, die beim Konzipieren von Fremdschl¨usselbeziehungen leicht vorkommen,
onnen schwerwiegende Probleme verursachen. Beispiele hierf¨ur sind zirkul¨are Regeln
oder die falsche Kombination kaskadierender Deletes.
Vista de pagina 63
1 2 ... 59 60 61 62 63 64 65 66 67 68 69 ... 767 768

Comentarios a estos manuales

Sin comentarios