web-dev-qa-db-fra.com

Tableaux personnalisés ou champs personnalisés?

Je construis un blog où les utilisateurs auront la possibilité de télécharger des images. Je souhaite afficher le nombre de fois que des publications ont été affichées et combien de fois l'image a été téléchargée.

Techniquement, j'ai résolu ce problème en utilisant des champs personnalisés et cela fonctionne. Dans un avenir proche, je souhaite ajouter une option permettant de trier les images en fonction des vies/téléchargements. J'ai également résolu ce problème, mais je pense maintenant que je devrais peut-être utiliser des tables personnalisées plutôt que des champs personnalisés.

Je prévois d’avoir des milliers d’images et je me demande si les requêtes d’affichage des images les plus téléchargées/visionnées seront lentes.

1
RhymeGuy

Utilisez une table personnalisée pour un compteur de vues. C’est plus rapide, plus facile à écrire et moins d’effets secondaires.

Les méta-requêtes postales sont plutôt lentes . Les informations sont stockées de manière optimisées pour le traitement moyen des publications, pas pour le tri personnalisé ni pour de nombreux accès en écriture. En outre, toutes les méta-valeurs post sont récupérées chaque fois que quelqu'un demande un champ. Vos données utiliseront des ressources même quand elles ne sont pas nécessaires.

Tôt ou tard, vous voudrez peut-être aussi compter les vues d'archive, les images multiples sur une page ou les téléchargements de fichiers d'archive avec plusieurs fichiers. Où voulez-vous stocker cela? Vous avez beaucoup plus de liberté avec des tables séparées: elles sont plus faciles à étendre, vous pouvez ajouter ou supprimer des champs, des tables ou des index.

D'autres plugins peuvent faire des choses inattendues avec vos données, vous ne pouvez donc plus vous en fier.

Un exemple: Dans Presse multilingue , lorsque quelqu'un crée la traduction d'un message existant, je prends tout postez des champs méta (sauf certains éléments intégrés connus) et copiez-les dans l'autre blog. Je dois le faire, sinon beaucoup de plugins casseraient. Mais votre plugin obtiendrait un compteur erroné maintenant: le nouveau message affichait un nombre de vues incorrect avant que quiconque l'ait jamais vu.
Vous pouvez protéger vos champs dans Multilingual Press, mais dans d’autres plugins, cela n’est peut-être pas possible ou vous ne savez simplement pas qu’ils existent.

J'ai également écrit un petit article de blog sur cette décision avec plus d'arguments: Comment stocker mes valeurs personnalisées?

Voir aussi cette réponse: Poster méta vs tables de base de données distinctes

0
fuxia