Qu'est-ce que je veux dire en disant vrai "lié par tags" liste?Structure de données, meilleure pratique pour créer de véritables listes d'articles "liés par tags"?
Imaginons que l'article ait 3 étiquettes: A, B, C. Les articles "liés par étiquettes" pour cet article seront des articles ayant des étiquettes A, B, C, puis (A, B), (A, C), (B, C), etc.
tableau: les tags
tag_id
tag_title
tag_nicetitle
Table: tags2articles
article_id
tag_id
L'utilisation de cette structure de tables est trop difficile pour calculer vrai "lié par des étiquettes".
Nous pouvons ajouter un autre tableau contenant article_id et c'est md5 (A, B, C). Avant de hacher, nous devrions trier les étiquettes par ordre alphabétique.
Table: article_tags_hashed
id
article_id
md5
count
Ce tableau nous aidera à trouver des articles contenant ensemble exacte des étiquettes (A, B, C), mais il ne va pas aider à trouver des articles contenant seulement (A , B), (A, C), (B, C)
Quelle est la meilleure pratique?
PS: Désolé pour mon anglais, c'est plutôt mauvais.
Le faites-vous avec SQL et DB ou en Java/C++/autre langage impératif? – Dmitry
Non, je le fais avec PHP/MySQL. Mais y a-t-il une différence quelle langue j'utilise pour cela? Il me semble être juste une structure de données et une question de performance. – Kirzilla
Eh bien, vous n'avez pas de structures de données autres que des tables dans le SGBD, vous devez donc créer une requête. Si vous utilisiez un langage impératif, vous pouvez jouer avec les structures de données. – Dmitry