J'ai une base de données qui contient deux tables:Le meilleur moyen de stocker des tags dans une base de données?
- entrées
- balises
Le tableau des entrées contient les messages qui ont chacun une ou plusieurs balises. Le problème est, chaque poste peut avoir n'importe quel nombre de balises. En d'autres termes, je ne peux pas avoir une colonne 'tag1', 'tag2', etc. et faire un LEFT JOIN.
Comment est-ce que je devrais établir des entrées de sorte que chaque publication puisse avoir n'importe quel nombre d'étiquettes?
Oui, et assurez-vous qu'aucune entrée n'a une étiquette en double. La mise à jour de la balise sera un peu délicate car vous devez vous assurer que les balises existantes restent, que de nouvelles sont ajoutées, que les balises supprimées sont supprimées. Bien sûr, vous pouvez toujours supprimer tout et ensuite les ajouter à nouveau pour vous éviter la peine de comparer. Avantages et inconvénients, je dirais. –
@ o.k.w: Vous pouvez gérer tous ces problèmes via des contraintes de clé étrangère et des mises à jour transactionnelles. – Borealid
@ o.k.w: De plus, une clé primaire (préférable) ou une contrainte unique sur les deux colonnes assurerait l'unicité par combinaison. –