Comment concevriez-vous une base de données pour prendre en charge les fonctionnalités de balisage suivantes:
- les éléments peuvent avoir un grand nombre de balises
- recherche tous les éléments marqués avec un ensemble de balises donné doit être rapide (les éléments doivent avoir TOUTES les balises, il s'agit donc d'une recherche AND, pas d'une recherche OR)
- la création / écriture d'éléments peut être plus lente pour permettre une recherche / lecture rapide
Idéalement, la recherche de tous les éléments qui sont balisés avec (au moins) un ensemble de n balises données devrait être effectuée à l'aide d'une seule instruction SQL. Étant donné que le nombre de balises à rechercher ainsi que le nombre de balises sur un élément sont inconnus et peuvent être élevés, l'utilisation de JOINs n'est pas pratique.
Des idées?
Merci pour toutes les réponses à ce jour.
Si je ne me trompe pas, cependant, les réponses données montrent comment effectuer une recherche OR sur les balises. (Sélectionnez tous les éléments qui ont une ou plusieurs balises parmi n). Je recherche une recherche ET efficace. (Sélectionnez tous les éléments qui ont TOUTES les balises n - et éventuellement plus.)