1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Beziehungen in MySQL mit InnoDB

Dieses Thema im Forum "Allgemeines" wurde erstellt von Dennis1993, 20. Oktober 2013.

  1. Dennis1993

    Dennis1993 Member

    Registriert seit:
    20. Oktober 2013
    Beiträge:
    7
    Zustimmungen:
    0
    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!
     
  2. entwickler

    entwickler Well-Known Member

    Registriert seit:
    27. Oktober 2012
    Beiträge:
    76
    Zustimmungen:
    0
    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.
     
  3. formateins

    formateins Gast

    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
     
  4. Dennis1993

    Dennis1993 Member

    Registriert seit:
    20. Oktober 2013
    Beiträge:
    7
    Zustimmungen:
    0
    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!

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

    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? :)

    :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!
     
    #4 Dennis1993, 21. Oktober 2013
    Zuletzt bearbeitet: 21. Oktober 2013
  5. derheimwerker

    derheimwerker Well-Known Member

    Registriert seit:
    5. Dezember 2012
    Beiträge:
    271
    Zustimmungen:
    0
    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.

    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.

    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..
     
    #5 derheimwerker, 21. Oktober 2013
    Zuletzt bearbeitet: 21. Oktober 2013
  6. entwickler

    entwickler Well-Known Member

    Registriert seit:
    27. Oktober 2012
    Beiträge:
    76
    Zustimmungen:
    0
    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.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden