Maison  >  Article  >  base de données  >  Compétences en conception de tables de classification pour le système d'épicerie dans MySQL

Compétences en conception de tables de classification pour le système d'épicerie dans MySQL

WBOY
WBOYoriginal
2023-11-01 09:42:181274parcourir

Compétences en conception de tables de classification pour le système dépicerie dans MySQL

Conseils pour concevoir des tables de classification pour les systèmes d'achats alimentaires dans MySQL

Introduction :
Dans le processus d'achat de nourriture, la classification est très importante. Pour un système de courses alimentaires, la conception du tableau de classification est une étape très critique. Cet article présentera les techniques de conception de la table de classification du système d'épicerie dans MySQL et fournira des exemples de code spécifiques.

1. Analyser les exigences
Avant de concevoir le tableau de classification, nous devons analyser les exigences et déterminer la structure hiérarchique et les attributs de la classification. Pour un système de courses alimentaires, les catégories pouvant être considérées comprennent : les ingrédients, la vaisselle, les ustensiles de cuisine, etc. Ces catégories peuvent être subdivisées. Par exemple, les ingrédients peuvent être divisés en légumes, fruits, viande, etc. Sur cette base, nous pouvons déterminer les champs de la table de classification, tels que l'ID de classification, le nom de la classification, l'ID de classification parent, etc.

2. Table de catégorie de conception

Catégorie CREATE TABLE (
category_id INT(11) NOT NULL AUTO_INCREMENT,category_id INT(11) NOT NULL AUTO_INCREMENT,
category_name VARCHAR(50) NOT NULL,
parent_id INT(11) DEFAULT NULL,
PRIMARY KEY (category_id),
INDEX idx_parent_id (parent_id),
FOREIGN KEY (parent_id) REFERENCES category (category_id category_name VARCHAR(50) NOT NULL,
parent_id INT(11) DEFAULT NULL,

CLÉ PRIMAIRE (category_id),

INDEX idx_parent_id (parent_id),

CLÉ ÉTRANGÈRE (parent_id) RÉFÉRENCES category (category_id)
    );
  • Description : Le champ
  • category_id est utilisé comme identifiant unique du catégorie, en utilisant le type INT , et définissez-la comme clé primaire à incrémentation automatique.
  • Le champcategory_name est utilisé pour stocker le nom de la catégorie, en utilisant le type VARCHAR, d'une longueur de 50 caractères.
  • Le champ parent_id est utilisé pour stocker l'ID de la catégorie parent, en utilisant le type INT et défini pour être nullable. Pour la classification de premier niveau, parent_id est NULL.
  • Définissez le champcategory_id comme clé primaire pour une recherche rapide.
Définissez l'index idx_parent_id pour faciliter l'interrogation rapide des sous-catégories en fonction de l'ID de la catégorie parent.

Définissez des contraintes de clé étrangère pour garantir la validité de l'ID de catégorie parent.



3. Insérer des données catégorielles

INSERT INTO catégorie (category_name, parent_id) VALUES ('ingredients', NULL);
INSERT INTO catégorie (category_name, parent_id) VALUES ('legumes', 1);
INSERT INTO catégorie ( nom_catégorie, identifiant_parent) VALEURS ('Fruit', 1);
INSÉRER DANS la catégorie (nom_catégorie, identifiant_parent) VALEURS ('Viande', 1);
INSÉRER DANS la catégorie (nom_catégorie, identifiant_parent) VALEURS ('Plats', NULL); INSERT INTO catégorie (category_name, parent_id) VALUES ('Cuisine du Sichuan', 5);
INSERT INTO catégorie (category_name, parent_id) VALUES ('Cuisine cantonaise', 5);
INSERT INTO catégorie (category_name, parent_id) VALUES ('Hunan cuisine' , 5);
INSERT INTO catégorie (category_name, parent_id) VALUES ('Kitchen Utensils', NULL);

INSERT INTO catégorie (category_name, parent_id) VALUES ('Tools', 9);

INSERT INTO catégorie (category_name, parent_id) parent_id) VALUES ('Cookware', 9);

INSERT INTOcategory (category_name, parent_id) VALUES ('Tableware', 9);
  • Remarque :
  • Lors de l'insertion de données de la catégorie de premier niveau, parent_id est défini sur NUL.

Lors de l'insertion des données d'une sous-catégorie, parent_id est défini sur l'ID de catégorie parent correspondant.

  1. 4. Interroger les données de catégorie

Interroger la liste de toutes les catégories de premier niveau et leurs sous-catégories :


SELECT p.category_name AS parent_category, c.category_name AS child_category

FROMcategory p
    category LEFT JOIN c ON p .category_id = c.parent_id
  1. WHERE p.parent_id IS NULL ;

Interrogez la liste des sous-catégories de la catégorie spécifiée :

  1. SELECTcategory_name FROMcategory WHERE parent_id = 1 ;

Interrogez les informations sur la catégorie parent de la catégorie spécifiée. :


SELECT p.category_name AS parent_category, c.category_name AS child_category

FROM catégorie p

JOIN catégorie c ON p.category_id = c.parent_id
WHERE c.category_name = 'vegetable';

🎜V Résumé🎜À travers le ci-dessus la conception et les exemples de code, nous pouvons implémenter un système d'épicerie avec fonction de classification. Grâce à la conception de tableaux de classification, nous pouvons gérer et organiser de manière flexible différents ingrédients, plats, ustensiles de cuisine, etc. J'espère que cet article pourra vous fournir des références et de l'aide pour concevoir des tables de classification dans MySQL. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn