>데이터 베이스 >MySQL 튜토리얼 >MySQL 테이블 설계 실습: 쿠폰 테이블 및 사용 기록 테이블 생성

MySQL 테이블 설계 실습: 쿠폰 테이블 및 사용 기록 테이블 생성

WBOY
WBOY원래의
2023-07-01 23:33:402296검색

MySQL 테이블 디자인 실습: 쿠폰 테이블 및 사용 기록 테이블 만들기

많은 비즈니스 시나리오에서 쿠폰은 일반적인 홍보 도구입니다. 쿠폰 사용을 효과적으로 관리하고 추적하기 위해서는 쿠폰 테이블과 사용 기록 테이블을 디자인해야 합니다. 이 문서에서는 이러한 두 테이블을 만드는 방법을 안내하고 해당 코드 예제를 제공합니다.

쿠폰 테이블 디자인

먼저 사용 가능한 모든 쿠폰 정보를 저장할 쿠폰 테이블을 생성해야 합니다. 다음은 기본 쿠폰 테이블 디자인 예입니다.

CREATE TABLE `coupon` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `code` VARCHAR(50) NOT NULL,
  `discount` DECIMAL(10,2) NOT NULL,
  `valid_from` DATETIME NOT NULL,
  `valid_to` DATETIME NOT NULL,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `code_UNIQUE` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

위 디자인에서는 다음 필드를 사용했습니다.

  • id: 자동 증가 정수를 사용하여 쿠폰의 고유 식별자입니다. 기본 키.
  • id:优惠券的唯一标识,使用自增整数作为主键。
  • code:优惠券的代码,通常是一串字符或数字。
  • discount:优惠券的折扣金额或折扣比例。
  • valid_from:优惠券的有效开始日期和时间。
  • valid_to:优惠券的有效结束日期和时间。
  • created_at:优惠券的创建时间,使用MySQL的CURRENT_TIMESTAMP函数自动生成。

使用记录表设计

接下来,我们需要创建一张使用记录表,用于记录每个优惠券的使用情况。以下是一个基本的使用记录表设计示例:

CREATE TABLE `coupon_usage` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `coupon_id` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  `used_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  KEY `coupon_id_idx` (`coupon_id`),
  KEY `user_id_idx` (`user_id`),
  CONSTRAINT `coupon_id_fk` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`),
  CONSTRAINT `user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在上面的设计中,我们使用了以下字段:

  • id:使用记录的唯一标识,使用自增整数作为主键。
  • coupon_id:优惠券的ID,与优惠券表中的id字段相对应。
  • user_id:使用优惠券的用户的ID。
  • used_at:优惠券的使用时间。

为了确保数据的一致性和完整性,我们还创建了两个外键约束,将coupon_id字段与coupon表中的id字段关联起来,将user_id字段与user表中的idcode: 쿠폰 코드로, 일반적으로 문자나 숫자로 구성된 문자열입니다.

할인: 쿠폰의 할인 금액 또는 할인 비율입니다.

valid_from: 쿠폰의 유효 시작 날짜 및 시간입니다.

valid_to: 쿠폰의 유효 기간 종료 날짜 및 시간입니다.

created_at: MySQL의 CURRENT_TIMESTAMP 함수를 사용하여 자동으로 생성된 쿠폰 생성 시간입니다.

사용 기록 테이블 디자인

다음으로, 각 쿠폰의 사용을 기록하기 위한 사용 기록 테이블을 생성해야 합니다. 다음은 레코드 테이블 디자인을 사용하는 기본 예입니다. 🎜rrreee🎜위 디자인에서는 다음 필드를 사용했습니다. 🎜🎜🎜id: 자동을 사용하여 레코드의 고유 식별자를 사용합니다. -기본 키로 정수를 증가시킵니다. 🎜coupon_id: 쿠폰 테이블의 id 필드에 해당하는 쿠폰 ID입니다. 🎜user_id: 쿠폰을 사용한 사용자의 ID입니다. 🎜used_at: 쿠폰 사용 시간입니다. 🎜데이터의 일관성과 무결성을 보장하기 위해 coupon_id 필드를 coupon와 연결하는 두 개의 외래 키 제약 조건도 만들었습니다. table user_id 필드의 id 필드를 user 테이블의 id 필드와 연결합니다. 이렇게 하면 모든 사용 기록이 유효해집니다. 🎜🎜위의 테이블 디자인을 사용하면 쿠폰 사용을 쉽게 관리하고 추적할 수 있습니다. 실제 요구 사항에 따라 테이블을 확장하고 최적화하여 다양한 비즈니스 시나리오에 적응할 수 있습니다. 🎜🎜Summary🎜🎜이 기사에서는 쿠폰 테이블을 생성하고 레코드 테이블의 MySQL 테이블 디자인을 사용하여 완전한 쿠폰 관리 시스템의 디자인 아이디어를 독자들에게 보여줍니다. 합리적인 테이블 구조 설계와 외래 키 제약 조건을 통해 쿠폰 사용을 효과적으로 관리하고 추적할 수 있습니다. 이 글이 독자들의 실제 개발에 도움이 되기를 바랍니다. 🎜

위 내용은 MySQL 테이블 설계 실습: 쿠폰 테이블 및 사용 기록 테이블 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.