Maison > base de données > tutoriel mysql > 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
Libérer: 2024-10-31 08:39:30
original
492 Les gens l'ont consulté

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal