J'ai une base de données MySQL avec le schéma typique pour les éléments de marquage:SQL à des éléments lots re-tag
item (1->N) item_tag (N->1) tag
Chaque balise a un nom et un compte de combien d'éléments ont cette étiquette -à-dire:
item
(
item_id (UNIQUE KEY)
)
item_tag
(
item_id (NON-UNIQUE INDEXED),
tag_id (NON-UNIQUE INDEXED)
)
tag
(
tag_id (UNIQUE KEY)
name
count
)
J'ai besoin d'écrire une routine de maintenance pour ré-étiqueter en lot une ou plusieurs balises existantes sur une seule balise nouvelle ou existante. Je dois m'assurer qu'après le retag, aucun article ne porte de balises en double et j'ai besoin de mettre à jour les comptes de chaque enregistrement de balise pour refléter le nombre d'articles réels utilisant cette balise.
Vous cherchez des suggestions sur la façon de mettre en œuvre cette efficace ...
bien votre première erreur primaire et est que vous ne le faites pas côté serveur - je n'ai pas analysé votre code plus loin que cela, donc je ne peux plus commenter. –
Je ne suis pas certain de comprendre. Il y a quelques bits à l'avant qui sont faits dans le code - mais ils sont mineurs (obtenir l'identifiant d'un couple de tags). La plus grande partie du travail consiste en seulement 4 instructions SQL - elles ne sont pas en boucle ou quoi que ce soit. –