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