recherche

Maison  >  Questions et réponses  >  le corps du texte

php - À propos du produit Classification Infinitus Conception de table Mysql

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

黄舟黄舟2839 Il y a quelques jours708

répondre à tous(6)je répondrai

  • 大家讲道理

    大家讲道理2017-05-16 12:04:51

    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...

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 12:04:51

    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.

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 12:04:51

    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

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 12:04:51

    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.

    répondre
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 12:04:51

    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

    répondre
    0
  • PHPz

    PHPz2017-05-16 12:04:51

    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

    .

    répondre
    0
  • Annulerrépondre