web-dev-qa-db-fra.com

Bonne façon de stocker un grand nombre de champs de publication personnalisés

Sur l'un des sites de mon réseau multi-sites; Je crée un type de message personnalisé "Événements". Chaque publication "Événements" aura environ 30 à 50 champs de publication personnalisés, car nous demandons aux créateurs d'événements de saisir de nombreuses données relatives aux événements.

J'ai remarqué que WP crée plusieurs lignes pour stocker des champs de publication personnalisés. et cela signifie que chacune de nos publications "Événements" aura ~ 100 (ou peut-être plus?) nombre de lignes insérées dans la base de données.

Nous nous attendons maintenant à créer un grand nombre de messages de ces événements; tous remplis via front-end par nos utilisateurs. Je parle de dizaines de milliers d'événements créés par les utilisateurs, chacun contenant beaucoup de données de champs personnalisés.

Je pensais qu'un meilleur plan serait de coder toutes les données de champs personnalisés sous forme de chaîne JSON et de les stocker dans la base de données sous la forme d'un seul champ personnalisé; créant ainsi une seule entrée par événement dans la base de données.

Jusqu'ici tout va bien.

Le problème: je me demande ce qui se produirait lorsque nous aurions un grand nombre d’événements et nous devrons les rechercher en fonction de champs de publication personnalisés. Sera-t-il efficace de chercher dans des chaînes jSON (texte) ou de parcourir un grand nombre de lignes?.

En attente de vos réponses, merci!

4
TheBigK

Vous pouvez les encoder en tant que JSON ou en tant que chaînes sérialisées (vous pouvez utiliser ces dernières en utilisant des fonctions déjà intégrées à Wordpress). Ces deux options vous permettront de limiter le nombre de lignes de la base de données.

Toutefois, ces deux options entraveront également de manière significative votre capacité à effectuer des recherches dans les données, ou à les traiter de manière significative d’autres manières si vous en avez besoin ultérieurement.

Peu importe que votre base de données comporte un grand nombre de lignes.

Si votre site parvient à la taille à laquelle poserait un problème , votre matériel informatique devra évoluer en conséquence. Vous traiterez beaucoup plus de données sur votre serveur en traitant les données codées (ou en effectuant des requêtes ésotériques pour obtenir les données) sur une seule ligne que si les champs personnalisés étaient tous dans leurs propres lignes.

Wordpress peut gérer beaucoup de données - laissez-le :)

3
Tim Malone