Heute überprüfe ich die Tabellen der WordPress-Datenbank, aber ich kann keine Fremdschlüssel finden, um Tabellen zu verknüpfen. Kann mir jemand sagen, warum WordPress keine Fremdschlüssel hat?
Warum verwendet das WordPress-Datenbankschema keine Fremdschlüssel? [closed]
Z4k4r14
WordPress verwendet MyISAM wegen mehr Funktionalität und besserer Leistung, aber MyISAM unterstützte keine Fremdschlüssel. Es war ein Kompromiss.
-
Wie stellt WordPress also die Integrität der Daten sicher?
– Z4k4r14
3. Dezember 2012 um 2:30 Uhr
-
Das tut es nicht. 🙂 Nun, ich kenne nicht alle Einzelheiten von WordPress, aber ich denke, es tut dies durch die Verwendung von ORM-Klassen, die gründlich (Einheiten-) getestet werden können. Diese Klassen können anstelle der Datenbank die Integrität validieren. Dies ermöglicht die Verwendung einer viel breiteren Vielfalt von Speichertypen. Es könnte sogar ein benutzerdefiniertes Dateiformat verwenden und dennoch dieselben programmierten Prüfungen verwenden. (Ich finde.)
– GolezTrol
3. Dezember 2012 um 2:35 Uhr
Fremdschlüssel sind nur Einschränkungen – sie erleichtern die Wahrung der Datenintegrität, sind aber nicht erforderlich, um die Tabellen zu korrelieren. WordPress verwendet MySQL und MySQL kann viele “Engines” zum Speichern der Tabellen verwenden, aber AFAIK unterstützt nur eine von ihnen (InnoDB) Fremdschlüssel. WordPress hat sich wahrscheinlich aus Leistungsgründen dagegen entschieden.