> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 쇼핑몰의 사용자 수집 테이블 구조를 어떻게 디자인하나요?

MySQL에서 쇼핑몰의 사용자 수집 테이블 구조를 어떻게 디자인하나요?

王林
풀어 주다: 2023-10-31 09:25:53
원래의
1068명이 탐색했습니다.

MySQL에서 쇼핑몰의 사용자 수집 테이블 구조를 어떻게 디자인하나요?

MySQL에서 쇼핑몰의 사용자 컬렉션 테이블 구조를 어떻게 디자인하나요?

몰 데이터베이스를 설계할 때 사용자 수집은 중요한 기능 중 하나입니다. 사용자는 관심 있는 상품을 즐겨찾기에 추가하여 나중에 쉽게 보거나 구매할 수 있습니다. 본 글에서는 MySQL에서 쇼핑몰의 사용자 컬렉션 테이블 구조를 설계하는 방법을 소개하고 구체적인 코드 예시를 제공합니다.

1. 요구 사항 분석
테이블 구조를 설계하기 전에 먼저 사용자 컬렉션의 요구 사항을 분석해야 합니다. 특히 다음 측면을 고려해야 합니다.

  1. 사용자 ID: 각 사용자는 고유한 ID ID를 가지고 있습니다.
  2. 제품 ID: 각 제품에는 고유한 ID가 있습니다.
  3. 시간 추가: 사용자가 항목을 즐겨찾기에 추가한 시간입니다.
  4. 상태: 즐겨찾기 항목은 사용자에 의해 취소될 수 있으므로 현재 상태를 나타내는 필드가 필요합니다.

2. 테이블 구조 설계
위 요구 사항을 바탕으로 사용자가 선호하는 다음과 같은 테이블 구조를 설계할 수 있습니다.

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',

user_id int(11) NOT NULL COMMENT '사용자 ID',

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

add_time datetime NOT NULL COMMENT '시간 추가',

statustinyint(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='사용자 즐겨찾기 테이블';🎜🎜각 필드의 의미를 설명하세요:🎜🎜🎜id: 기본 키 ID, 자동 증가 사용 성별의 고유성을 보장하는 기본 키입니다. 🎜🎜user_id: 사용자 테이블의 ID와 연결된 사용자 ID입니다. 🎜🎜product_id: 제품 테이블의 ID와 연결된 제품 ID입니다. 🎜🎜add_time: 시간을 추가하고, 특정 시간을 저장하려면 datetime 유형을 사용하세요. 🎜🎜status: 상태. 현재 수집 상태를 나타내는 데 사용됩니다. 기본값은 1(유효함), 0(유효하지 않음)입니다. 🎜🎜🎜3. 코드 예🎜🎜🎜사용자 즐겨찾기 테이블 생성: 🎜🎜🎜CREATE TABLE user_favorite (🎜 id int(11) NOT NULL AUTO_INCREMENT COMMENT '기본 키 ID ' ,🎜 user_id int(11) NOT NULL COMMENT '사용자 ID',🎜 제품_ID int(11) NOT NULL COMMENT '제품 ID',🎜 add_time datetime NOT NULL COMMENT '시간 추가',🎜 <code>statustinyint(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='사용자 즐겨찾기 테이블';🎜
    🎜사용자 즐겨찾기 레코드 추가: 🎜🎜🎜INSERT INTO user_favorite ( user_id, product_id, add_time) 🎜VALUES (1, 1001, '2022-01-01 10:00:00');🎜
      🎜사용자가 즐겨찾는 레코드 쿼리: 🎜🎜🎜SELECT product_id, add_time FROM user_favorite 🎜WHERE user_id code > = 1 AND <code>status = 1;🎜
        🎜제품 즐겨찾기 취소: 🎜🎜🎜UPDATE user_favorite SET status = 0 🎜WHERE <code>user_id = 1 AND product_id = 1001;🎜🎜위 코드 예시는 사용자 수집 테이블 생성, 수집 기록 추가, 쿼리 방법을 보여줍니다. 사용자의 컬렉션을 기록하고 해당 상품의 즐겨찾기를 취소합니다. 🎜🎜요약: 🎜사용자 수집 테이블의 구조를 설계할 때 사용자 ID, 제품 ID, 시간 및 상태 추가와 같은 필드를 고려해야 합니다. 테이블 구조를 적절하게 설계하고 인덱스를 사용함으로써 데이터베이스의 쿼리 효율성을 향상시킬 수 있습니다. 동시에 실제 사용 시 비즈니스 요구에 따라 테이블을 최적화하고 확장할 수 있습니다. 🎜🎜참고: 위의 예제 코드는 참고용일 뿐이며 구체적인 구현은 실제 상황에 따라 조정되어야 합니다. 🎜

위 내용은 MySQL에서 쇼핑몰의 사용자 수집 테이블 구조를 어떻게 디자인하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿