Table attributaire attr
商品表 item
关联表 item_attr
Champs de la table attributairecat_id
、title
Champs du tableau des produitsitem_id
、title
Champs du tableau des produitsitem_attr_id
、item_id
、attr_id
Par exemple, il y a 5 enregistrements d'attributs, cat_id
sont 1, 2, 3, 4 et 5.
Ajoutez un produit et sélectionnez les attributs 2 et 5
Ensuite, la table d'association doit contenir deux enregistrements. Maintenant, si vous souhaitez la modifier, par exemple, supprimez 5 et ajoutez 4, c'est généralement la façon de la gérer
Je reçois d'abord l'ancien original attr_id
,一个一个去查找看新 attr_id
有没有,如果没有就删除,再循环新attr_id
一个一个查找就的 attr_id
Y a-t-il dedans s'il est ignoré, sinon, ajoutez-le
Y a-t-il une meilleure façon ? Au début, mon idée était de tous les supprimer d’abord, puis d’en ajouter de nouveaux. N’est-ce pas non scientifique ?
La table d'association doit être la table d'inventaire. Un produit + un attribut définit un inventaire. Ce que vous avez dit ci-dessus, c'est qu'après avoir parcouru et comparé, s'il y a des changements, modifiez-les, et s'il n'y a aucun changement, supprimez-les. C'est correct.
Ce que vous avez dit plus tard est scientifique, mais ce que vous avez dit avant est trop compliqué, donc ce n'est pas scientifique.
Supprimez d'abord tout en fonction de item_id dans la table d'association, puis ajoutez tout
delete de item_attr où item_id = 1;
insérez dans item_attr (item_id, attr_id) les valeurs (1, 1), (1, 2), ( 1, 2);
C'est le plus efficace
Supprimez-les tous et ajoutez-les tous en fonction des derniers. Logique simple et meilleure efficacité