2010-06-24 5 views
1

J'ai une table qui contient des entrées de bibliographie, avec une clé primaire bibID. J'ai aussi une table qui contient une liste de catégories qui peuvent être assignées aux entrées de bibliographie avec une clé primaire categoryID. Une table lie ces deux tables en tant que bibID: categoryID, de sorte que chaque bibID puisse être associé à plusieurs categoryIDs.Mise à jour MySQL table de liaison 'catégories'

Les catégories associées aux entrées de bibliographie peuvent être éditées via un formulaire avec des cases à cocher représentant toutes les catégories possibles.

Quel est le moyen le plus efficace de mettre à jour cette relation? Je pourrais simplement supprimer toutes les relations de la table de liaison associée à une entrée, puis réinsérer tout ce que la forme dit, mais cela semble inefficace.

+0

Je vais généralement avec l'approche de suppression, si cela n'a pas d'importance quand un enregistrement a été inséré. – serg

Répondre

1

L'efficacité est un terme glissant. Cela peut signifier différentes choses pour différentes personnes.

Cependant, dans la plupart des cas, cela signifie "performance", donc je suppose que c'est ce que vous voulez dire pour le moment.

Je soupçonne la réalité est que ce est le moyen le plus efficace (performant). D'autres méthodes peuvent sembler plus élégantes, car elles préserveront les données existantes et ajouteront seulement des données manquantes, mais elles nécessiteront (potentiellement) plus d'accès à la base de données et (certainement) plus de SQL compliqué. Un appel de base de données à supprimer et un à ajouter devrait vous corriger. La seule exception peut être l'endroit où il y a un grand nombre d'entrées et les changements sont petits (ou négligeables). Dans ce cas, vous devrez peut-être reconsidérer.