php - À propos du produit Classification Infinitus Conception de table Mysql
黄舟
黄舟 2017-05-16 12:02:51
0
6
673

Actuellement, il existe trois tableaux, 1 : identifiant du tableau principal des marchandises, nom, prix

          2: goods_type 商品类型表  tid name 
          3:  goods_type_map  商品和商品类型关系表  id gid gtid

La structure du tableau précédent est la même que ci-dessus. Désormais, comme le type de produit correspondant peut être un à plusieurs et qu'un produit peut correspondre à plusieurs types, chaque fois que je mets à jour le type de produit, je dois supprimer l'existant. contenu de la table de relations et insérez-en de nouvelles.

tableau des marchandises :

    id  name  price  goods_type
    1   洗面奶    22    1,8
    2   面膜      33    11

tableau goods_type

    tid name 
    1    化妆品
    8    护肤品
    11   保健品

Je souhaite donc le modifier comme suit : Ajoutez le champ Goods_type à la table principale des produits pour remplacer la table Goods_type_map. Utilisez des virgules pour séparer plusieurs types.

Mais il y a actuellement un problème. Lors de l'interrogation d'un certain type de produit, l'utilisation de la requête Like entraîne souvent des erreurs de requête. Je voudrais donc demander comment gérer cette situation

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(6)
大家讲道理

Utiliser like n'est pas un bon choix. Je recommande une fonction Mysql find_in_set qui devrait être capable de résoudre les besoins de l'affiche originale. Documentation officielle : https://dev.mysql.com/doc/ref...

洪涛

Vous pouvez également envisager d'utiliser des procédures stockées pour une implémentation récursive, mais cela n'est pas recommandé. La classification infinie en elle-même n'est pas une bonne conception d'expérience utilisateur, sans compter qu'elle augmentera la pression sur le serveur et la base de données.

曾经蜡笔没有小新

Utilisez d'abord like pour connaître une partie des données, puis bouclez in_array() pour filtrer ou modifier la structure de la table

伊谢尔伦

Il s’agit évidemment d’une relation plusieurs-à-plusieurs.
Je pense donc qu'il vaut mieux que vous gardiez trois tables.
Cela correspond davantage au paradigme.

淡淡烟草味

Il devrait être plus raisonnable de se conformer au paradigme. Si vous insistez sur l'idée originale, ajoutez des séparateurs avant et après chaque identifiant de catégorie, et ajoutez des séparateurs lors de la correspondance avec des likes

PHPzhong

Lorsque vous utilisez like, par exemple, si vous avez une valeur comme 1,2,11, like 1 aimera 1 et 11
Dans ce cas, veuillez utiliser find_in_set

Si vous insistez pour utiliser like, la valeur du champ peut être comme ceci, 1,2,11. Lorsque vous aimez, like,1, peut également atteindre l'objectif

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal