Maison > base de données > tutoriel mysql > le corps du texte

Comment concevoir la structure de la table de collecte des utilisateurs du centre commercial dans MySQL ?

王林
Libérer: 2023-10-31 09:25:53
original
1034 Les gens l'ont consulté

Comment concevoir la structure de la table de collecte des utilisateurs du centre commercial dans MySQL ?

Comment concevoir la structure de la table de collecte des utilisateurs du centre commercial dans MySQL ?

Lors de la conception d'une base de données de centre commercial, la collecte des utilisateurs est l'une des fonctions importantes. Les utilisateurs peuvent ajouter les produits qui les intéressent à leurs favoris pour les visualiser facilement ou les acheter plus tard. Cet article explique comment concevoir la structure de la table de collecte d'utilisateurs du centre commercial dans MySQL et fournit des exemples de code spécifiques.

1. Analyse des exigences
Avant de concevoir la structure de la table, nous devons d'abord analyser les besoins des collections d'utilisateurs. Plus précisément, nous devons considérer les aspects suivants :

  1. ID utilisateur : chaque utilisateur possède un identifiant unique.
  2. ID produit : chaque produit possède un identifiant unique.
  3. Ajouter l'heure : l'heure à laquelle l'utilisateur a ajouté l'élément aux favoris.
  4. Statut : Les éléments des favoris peuvent être annulés par l'utilisateur, un champ est donc nécessaire pour indiquer l'état actuel.

2. Conception de la structure de la table
Sur la base des exigences ci-dessus, nous pouvons concevoir la structure de table préférée de l'utilisateur suivante :

CREATE TABLE user_favorite (user_favorite (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
user_id int(11) NOT NULL COMMENT '用户ID',
product_id int(11) NOT NULL COMMENT '商品ID',
add_time datetime NOT NULL COMMENT '添加时间',
status tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态,1表示有效,0表示无效',
PRIMARY KEY (id),
KEY user_id (user_id),
KEY product_id (product_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户收藏表';

解释一下各个字段的含义:

  1. id:主键ID,使用自增主键来确保唯一性。
  2. user_id:用户ID,与用户表中的ID关联起来。
  3. product_id:商品ID,与商品表中的ID关联起来。
  4. add_time:添加时间,使用datetime类型来存储具体的时间。
  5. status:状态,用于表示当前的收藏状态,默认为1表示有效,0表示无效。

三、代码示例

  1. 创建用户收藏表:

CREATE TABLE user_favorite (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
user_id int(11) NOT NULL COMMENT '用户ID',
product_id int(11) NOT NULL COMMENT '商品ID',
add_time datetime NOT NULL COMMENT '添加时间',
status tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态,1表示有效,0表示无效',
PRIMARY KEY (id),
KEY user_id (user_id),
KEY product_id (product_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户收藏表';

  1. 添加用户收藏记录:

INSERT INTO user_favorite (user_id, product_id, add_time)
VALUES (1, 1001, '2022-01-01 10:00:00');

  1. 查询用户的收藏记录:

SELECT product_id, add_time FROM user_favorite
WHERE user_id = 1 AND status = 1;

  1. 取消收藏某个商品:

UPDATE user_favorite SET status = 0
WHERE user_id = 1 AND product_id id int(11 ) NOT NULL AUTO_INCREMENT COMMENT 'ID de clé primaire',

user_id int(11) NOT NULL COMMENT 'user ID',

product_id int(11) NOT NULL COMMENT 'product ID' ,

add_time datetime NOT NULL COMMENT 'Add time',

status tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Statut, 1 signifie valide, 0 signifie invalide' ,
CLÉ PRIMAIRE (id),

CLÉ user_id (user_id),

CLÉ product_id ( product_id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='User Favorites Table';🎜🎜Expliquez la signification de chaque champ :🎜🎜🎜id : ID de clé primaire, utilisez l'incrémentation automatique clé primaire pour garantir l'unicité du sexe. 🎜🎜user_id : ID utilisateur, associé à l'ID dans la table user. 🎜🎜product_id : ID produit, associé à l'ID dans la table produit. 🎜🎜add_time : ajoutez de l'heure, utilisez le type datetime pour stocker une heure spécifique. 🎜🎜statut : Statut, utilisé pour indiquer l'état actuel de la collecte. La valeur par défaut est 1, ce qui signifie valide, et 0, ce qui signifie invalide. 🎜🎜🎜3. Exemple de code🎜🎜🎜Créer une table préférée de l'utilisateur : 🎜🎜🎜CREATE TABLE user_favorite (🎜 id int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID de clé primaire ' ,🎜 user_id int(11) NON NULL COMMENT 'ID utilisateur',🎜 product_id int(11) NON NULL COMMENT 'ID produit',🎜 add_time datetime NON NULL COMMENTAIRE 'Ajouter l'heure',🎜 <code>status tinyint(1) NON NULL PAR DÉFAUT '1' COMMENTAIRE 'Statut, 1 signifie valide, 0 signifie invalide',🎜 CLÉ PRIMAIRE ( id),🎜 CLÉ user_id (user_id),🎜 CLÉ product_id (product_id)🎜 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='User Favorite Table';🎜
    🎜Ajouter l'enregistrement favori de l'utilisateur : 🎜🎜🎜INSERT INTO user_favorite ( user_id, product_id, add_time) 🎜VALUES (1, 1001, '2022-01-01 10:00:00');🎜
      🎜Interrogez les enregistrements favoris de l'utilisateur : 🎜🎜🎜SELECT product_id, add_time FROM user_favorite 🎜WHERE user_id code > = 1 AND <code>status = 1;🎜
        🎜Annuler les favoris d'un produit : 🎜🎜🎜UPDATE user_favorite SET status = 0 🎜WHERE <code>user_id = 1 AND product_id = 1001;🎜🎜L'exemple de code ci-dessus montre comment créer une table de collection d'utilisateurs, ajouter des enregistrements de collection et interroger les enregistrements de collection de l'utilisateur et annuler les favoris d'un produit. 🎜🎜Résumé : 🎜Lors de la conception de la structure de la table de collecte des utilisateurs, vous devez prendre en compte des champs tels que l'ID utilisateur, l'ID produit, l'ajout de l'heure et du statut. En concevant correctement la structure des tables et en utilisant des index, l'efficacité des requêtes de la base de données peut être améliorée. Dans le même temps, en utilisation réelle, la table peut être optimisée et étendue en fonction des besoins de l'entreprise. 🎜🎜Remarque : l'exemple de code ci-dessus est uniquement à titre de référence et l'implémentation spécifique doit être ajustée en fonction de la situation réelle. 🎜

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal