Maison  >  Article  >  base de données  >  Comment puis-je diviser les mots-clés d'une chaîne séparée par des virgules dans une table MySQL et créer des relations efficaces pour les post-requêtes ?

Comment puis-je diviser les mots-clés d'une chaîne séparée par des virgules dans une table MySQL et créer des relations efficaces pour les post-requêtes ?

DDD
DDDoriginal
2024-10-31 08:39:30280parcourir

How can I split keywords from a comma-separated string in a MySQL table and create efficient relationships for post querying?

Diviser les mots-clés pour les publications à l'aide de PHP et MySQL

Dans ce contexte, nous diviserons efficacement les mots-clés stockés dans une seule colonne d'un tableau et répartissez-les entre deux nouvelles tables, garantissant l'intégrité des données et des requêtes optimisées.

Contexte :
Nous avons une table nommée 'post_tags' contenant les identifiants de publication (post_id) et les balises correspondantes (tags_csv ) séparés par des virgules. Notre objectif est de créer deux tables supplémentaires : "keywords" pour stocker des mots-clés uniques et "post_keywords" pour associer des mots-clés aux publications.

Solution optimisée :
Nous pouvons utiliser la procédure stockée de MySQL pour accomplir cette tâche efficacement. La procédure « normalise_post_tags » parcourt méticuleusement les balises de publication, extrayant les mots-clés et les insérant dans le tableau « mots-clés ». Il associe ensuite les mots-clés aux identifiants de publication dans le tableau « post_keywords ».

Détails de mise en œuvre :

  1. Préparation des données :

    • Créez la table 'post_tags' avec les identifiants de publication et les balises.
    • Créez la table 'mots-clés' avec une clé unique pour les noms de mots-clés.
    • Créez la table ' table post_keywords avec une clé primaire composite de keyword_id et post_id.
  2. Procédure stockée :

    • Les 'normalise_post_tags' La procédure utilise un curseur pour parcourir la table 'post_tags'.
    • Elle identifie les mots-clés en divisant la chaîne 'tags_csv' par des virgules, en coupant les mots-clés et en les insérant dans 'keywords' s'ils n'existent pas.
    • La procédure obtient le password_id pour chaque mot-clé (ou récupère l'ID si le mot-clé existe déjà) et stocke l'association dans la table 'post_keywords'.
  3. Exécution :

    • Exécutez la procédure 'normalise_post_tags' pour effectuer le fractionnement et l'insertion.

Avantages de Cette approche :

  • Efficacité :En utilisant une procédure stockée, nous éliminons les frais généraux de connexion et d'exécution répétés, ce qui améliore considérablement les performances.
  • Intégrité des données : La clé primaire composite dans la table 'post_keywords' garantit que les associations de mots-clés et de publications sont uniques.
  • Requête optimisée : La clé primaire composite clusterisée dans 'post_keywords' permet des requêtes efficaces sur les relations mot-clé-post.

Exemple d'utilisation :

Après avoir rempli la table 'post_tags' avec des données, exécutez la procédure 'normalise_post_tags' créera les tableaux « mots-clés » et « post_keywords », en divisant et en associant les mots-clés aux publications de manière optimisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn