web-dev-qa-db-fra.com

Où stocker les données de marquage personnalisées associées à un type de publication personnalisé

Mon application permet aux utilisateurs d'ajouter des balises à une image (similaire à Facebook). Chaque balise peut comporter jusqu'à 8 attributs et il n'y a actuellement aucune limite quant au nombre de balises qu'un utilisateur peut ajouter.

Pour le moment, les informations sur les balises sont stockées sur 3 paires post méta clé/valeur. Chaque méta-valeur de poste est sérialisée avant d'être stockée.

Nous sommes sur le point de réécrire cette fonctionnalité et je voulais vous demander conseil sur la meilleure approche pour stocker les données de balise.

OMI il y a deux approches:

  1. poste/clé méta pour chaque balise/attribut (possibilité de créer un énorme jeu de données - n balises fois 8 attributs)

  2. Une nouvelle table juste pour les tags

Les deux approches éviteraient de stocker des données sérialisées, ce que je pense être ce que je dois accomplir.

Quelle est la meilleure approche?
Une troisième option est-elle peut-être encore plus faisable?

1
Oldie

Évitez les publications en série chaque fois que vous le pouvez. Il est lent à lire et vous ne pouvez pas vraiment le chercher.

Utilisez des tableaux personnalisés - plus d'un:

  1. Un pour la relation entre les utilisateurs, les balises et les images: user_id, tag_id et image_id.
  2. Un pour les métadonnées de balises, vos attributs, si je comprends bien: tag_id, meta_1, meta_2

Maintenant, vous pouvez rechercher chaque ID de pièce jointe s'il existe une entrée pour l'utilisateur, puis rechercher les métadonnées à partir de la table méta.

2
fuxia

Plutôt que d'utiliser une table personnalisée ou une méta-publication pour stocker les informations de balise, vous trouverez probablement une solution plus simple si vous étudiez la prise en charge de la taxonomie personnalisée dans WordPress.

Vous pouvez enregistrer une (ou plusieurs) taxonomies personnalisées en fonction du type de publication de pièce jointe.

Les pages suivantes du Codex constituent un bon point de départ:

Vous pouvez également trouver l'inspiration dans des plugins WordPress existants qui fournissent des fonctionnalités similaires telles que http://plugins.trac.wordpress.org/browser/matts-community-tags/trunk

1
Peter Westwood