Benutzerdefinierte Tabellen oder benutzerdefinierte Felder?

Ich baue einen Blog, wo Benutzer die Möglichkeit haben, Bilder herunterzuladen. Ich möchte Informationen anzeigen, wie oft Posts angezeigt wurden und wie oft das Bild heruntergeladen wurde.

Technisch habe ich das mit benutzerdefinierten Feldern getriggers und es funktioniert. In naher Zukunft möchte ich eine Option hinzufügen, um Bilder basierend auf Videos / Downloads zu sortieren. Auch ich habe das getriggers, aber ich denke jetzt, dass ich vielleicht benutzerdefinierte Tabellen anstelle von benutzerdefinierten Feldern verwenden sollte.

Ich plane, ungefähr tausend Bilder zu haben, und ich mache mir Sorgen, wenn die Abfragen für die Anzeige der meisten heruntergeladenen / angesehenen Bilder langsam sind.

Solutions Collecting From Web of "Benutzerdefinierte Tabellen oder benutzerdefinierte Felder?"

Verwenden Sie eine benutzerdefinierte Tabelle für einen Ansichtszähler. Dies ist schneller, einfacher zu schreiben und es hat weniger Nebenwirkungen.

Post-Meta-Abfragen sind eher langsam . Die Informationen werden so gespeichert, dass sie für die durchschnittliche Nachbearbeitung optimiert sind, nicht für die benutzerdefinierte Sortierung oder viele Schreibzugriffe. Außerdem werden alle Post-Meta-Werte jedes Mal abgerufen, wenn jemand nach einem Feld fragt. Ihre Daten verwenden Ressourcen, selbst wenn sie nicht benötigt werden.

Früher oder später möchten Sie vielleicht auch Archivansichten, mehrere Bilder auf einer Seite oder Downloads von Archivdateien mit mehr als einer Datei zählen. Wo willst du das speichern? Mit separaten Tabellen haben Sie viel mehr Freiheiten: Sie sind einfacher zu erweitern, Sie können Felder, Tabellen oder Indizes hinzufügen oder entfernen.

Andere Plugins können unerwartete Dinge mit Ihren Daten verursachen, so dass Sie sich nicht mehr darauf verlassen können.

Ein Beispiel: Wenn jemand in Multilingual Press eine Übersetzung eines bestehenden Posts erstellt, nehme ich alle Post-Meta-Felder (mit Ausnahme einiger bekannter Einbauten) und kopiere diese in das andere Blog. Ich muss, weil sonst viele Plugins kaputt gehen würden. Aber Ihr Plugin würde jetzt einen falschen Zähler bekommen: Der neue Beitrag hat eine falsche Anzahl von Ansichten, bevor irgendjemand es jemals gesehen hat.
Sie können Ihre Felder in Multilingual Press schützen, aber in anderen Plugins, die möglicherweise nicht möglich sind, oder Sie wissen einfach nicht, dass sie existieren.

Ich habe auch einen kleinen Blogpost über diese Entscheidung mit mehr Argumenten geschrieben: Wie speichere ich meine benutzerdefinierten Werte?

Siehe auch diese Antwort: Post Meta vs separate databasetabellen