Beziehungen in MySQL mit InnoDB

  • Hallo Leute,

    ich bin momentan auf der Suche nach einem geeignetem System für meine Website und dabei auf Wordpress gestoßen.
    Das System gefällt mir ganz gut, allerdings habe ich da mal eine Frage zur aktuellen Version (3.6).

    Auf meinem Webserver ist PHP 5.5 installiert und MySQL 5.5 mit InnoDB als Standard-Engine. Nach der Installation habe ich auch alle Tabellen in der DB mit der Engine InnoDB. Also alles wunderbar.
    Wenn ich nun auf den Designer von phpMyAdmin gehe, sind dort überhaupt keine Beziehungen gesetzt. Das heißt, es gibt gar keine Fremdschlüssel zu den Primärschlüsseln.

    Meine Frage: Ist das so gewollt oder läuft hier etwas schief bei mir?

    Bei der Tabelle users gibt es doch eine Spalte ID und in der Tabelle usermeta gibt es auch eine Spalte user_id. Warum sind die beispielsweise nicht verknüpft?
    Macht man das noch umständlich mit PHP und entfernt die manuell?
    '->Wenn ja, warum macht man das, wenn doch der MySQL-Server dafür alles bereitstellt?

    Bei der Tabelle posts und postmeta das gleiche. Wenn man die verknüpft, macht der DB-Server doch alles von selbst und man muss nicht extra PHP-Code dafür machen und den PHP-Interpreter unnötig laufen lassen, wenn man einen Post löscht. So entstehen auch keine Anomalien.

    Würde mich freuen, wenn mir da jemand eine Antwort geben könnte.

    Danke im Voraus und viele Grüße!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Wordpress hat keine Fremdschlüssel. Sonst würde es nicht mehr mit MyIsam laufen.
    Ohne Fremdschlüssel sind die INSERTs schneller. Ist das kein Vorteil?

    Natürlich helfen Fremdschlüssel die Daten konsistent zu halten.
    "Anomalien" entstehen nur wenn Code fehlerhaft ist.

    Lang lebe Edward Snowden!

  • 1. Bei WordPress bist Du Meilenweit von modernen Programmier- und Datenbankverfahren entfernt.
    2. WordPress nutzt keine (echten) Relationen. Das System kommt schon seit Jahren mit dem aus, was Du siehst. Probleme werden gerne umschifft, als sie in ihrer Ursächlichkeit anzugehen. Gebunden an MySQL, auf biegen und brechen!
    3. Schubser in eine andere Richtung: Typo3, Drupal, concrete5. Etwas anspruchsvolleres Nerd-Spielzeug, dafür deutlich Leistungsstärker. Cracks schmusen auch gerne mit modX rum... :D

  • Wordpress hat keine Fremdschlüssel. Sonst würde es nicht mehr mit MyIsam laufen.


    Gibt es denn in der heutigen Zeit überhaupt noch Server die kein InnoDB haben?
    Jeder bietet doch heutzutage Server an, die das können. Würde mein Hoster noch mit so Steinzeit-Systemen arbeiten, wäre ich schon längst weg da. Das ist ja auch ein Sicherheitsaspekt!

    Ohne Fremdschlüssel sind die INSERTs schneller. Ist das kein Vorteil?


    Das macht sich dann aber mit Sicherheit erst bei massenhaften Inserts bemerkbar und nicht bei 10 oder 20 Stück...

    Natürlich helfen Fremdschlüssel die Daten konsistent zu halten. "Anomalien" entstehen nur wenn Code fehlerhaft ist.


    Ja, das stimmt, und das mag vielleicht bei Wordpress anständig funktionieren doch Menschen machen Fehler und bei großen Systemen könnte massig Datenmüll entstehen, wenn man etwas vergisst ;)
    Und würde man das als System-Voraussetzung festsetzen, müssten Plugins auch so erstellt werden und auch dadurch würde man wieder Ressourcen einsparen und die DB-Konsistenz bewahren. Ich habe schon Plugins gesehen, da blieben die zusätzlichen Daten nach dem Löschen in der DB vorhanden und das sind sinnlose Daten die nie wieder gebraucht werden und blähen das System unnötig auf. :)
    Und wenn ein Server die Funktionalität bietet, warum dann nicht nutzen? So spart man ja auch Ressourcen und Code, sprich es sollte schneller laufen. Ist das kein Vorteil? :)

    Bei WordPress bist Du Meilenweit von modernen Programmier- und Datenbankverfahren entfernt.


    :roll: Ohje, das weckt kein Vertrauen bei mir.

    Wordpress bietet ja nicht so viele Funktionen wie andere Systeme und man muss vieles durch Plugins hinzufügen. Bei einer frischen Installation ohne Plugins, kommt mir Wordpress irgendwie träge vor und überladen. Wenn ich da mal Joomla! oder was es da alles so gibt nehme, laufen diese Systeme doch etwas flotter aus meiner Sicht.

    Danke für eure Antworten!

    Einmal editiert, zuletzt von Dennis1993 (21. Oktober 2013 um 13:40)

  • Wordpress ist halt entwicklungstechnisch gewachsen und daher auch wenig auf moderne Paradigmen ausgelegt.

    Echte Alternativen, bei denen auch Laien sofort (zumindest i. d. R.) zurechtfinden und die Out-of-the-Box auf Blogs ausgerichtet sind, gibt es kaum. Schon gar nicht mit einer derartig großen Community.

    Ich finde Wordpress eigentlich gar nicht so sehr träge. Da habe ich schon ganz andere Sachen gesehen.

    Zitat

    [COLOR=#333333][FONT=Verdana]Ohje, das weckt kein Vertrauen bei mir.[/FONT][/COLOR]


    Nur, weil etwas nicht jedem Paradigma entspricht, heißt das nicht, dass es schlecht sein muss.

    Ich habe z. B. zu Hause einen Bohrständer, der ist 40 Jahre alt. Natürlich hat der nur wenige Features, die man heute erwartet. Aber er funktioniert immer noch wie am ersten Tag.

    Zitat

    [COLOR=#333333][FONT=Verdana]Wordpress bietet ja nicht so viele Funktionen wie andere Systeme und man muss vieles durch Plugins hinzufügen[/FONT][/COLOR]


    Es stellt sich die Frage, ob das in Hinblick darauf, dass es grundsätzlich ein einfach zu handhabendes Blog-System sein soll, überhaupt ein Nachteil ist..

  • Hallo Dennis1993, vielleicht sind Deine Ideen mit den Fremdschlüsseln gut. Wordpress ist OpenSrc. Du könntest die Fremdschlüssel mit alter table ... einfügen und testen. Wenn es klappt veröffentliche Dein sql Skript. Wir testen auch nochmal. Vielleicht wird Dein Vorschlag Teil des nächsten Releases.

    Lang lebe Edward Snowden!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!