ホームページ  >  記事  >  データベース  >  MySQL テーブル設計の実践: クーポン テーブルと使用記録テーブルを作成する

MySQL テーブル設計の実践: クーポン テーブルと使用記録テーブルを作成する

WBOY
WBOYオリジナル
2023-07-01 23:33:402261ブラウズ

MySQL テーブル設計の実践: クーポン テーブルと使用記録テーブルの作成

多くのビジネス シナリオでは、クーポンは一般的なプロモーション ツールです。クーポンの使用を効果的に管理および追跡するには、クーポン テーブルと使用記録テーブルを設計する必要があります。この記事では、これら 2 つのテーブルの作成方法を説明し、対応するコード例を示します。

クーポン テーブルの設計

まず、利用可能なすべてのクーポン情報を保存するためのクーポン テーブルを作成する必要があります。基本的なクーポン テーブル デザインの例を次に示します。

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: クーポンの一意の識別子、自動増加する整数を主キーとして使用します。
  • 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 テーブルに接続する 2 つの外部キー制約も作成しました。 ##id フィールドが関連付けられ、user_id フィールドが user テーブルの id フィールドに関連付けられます。これにより、すべての使用記録が有効であることが保証されます。

上記のテーブル設計により、クーポンの使用状況を簡単に管理および追跡できます。実際のニーズに応じてテーブルを拡張および最適化し、さまざまなビジネス シナリオに適応できます。

概要

この記事では、クーポン テーブルを作成し、レコード テーブルの MySQL テーブル設計実践を使用することにより、完全なクーポン管理システムの設計アイデアを読者に示します。合理的なテーブル構造設計と外部キー制約により、クーポンの使用状況を効果的に管理および追跡できます。この記事が読者の実際の開発に役立つことを願っています。

以上がMySQL テーブル設計の実践: クーポン テーブルと使用記録テーブルを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。