MySQL でモールの注文テーブル構造を設計するにはどうすればよいですか?
モール システムでは、注文は中核となるデータ モジュールです。注文テーブルの設計では、注文の基本情報、商品情報、ユーザー情報などを考慮する必要があります。この記事では、MySQL でモールの注文テーブル構造を設計する方法と、対応するコード例を紹介します。
1. 注文テーブルの基本情報
注文テーブルの基本情報には、注文番号、注文作成時刻、注文ステータスなどが含まれます。以下は、単純な注文テーブル構造の例です。
CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_number` varchar(20) NOT NULL, `create_time` datetime NOT NULL, `status` int(1) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `order_number` (`order_number`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
この例の注文テーブルには、id、order_number、create_time、status の 4 つのフィールドが含まれています。このうち、id は注文の一意の識別子、order_number は注文番号、create_time は注文作成時間、status は注文ステータスです (たとえば、0 は支払い保留中、1 は支払い済み、-1 はキャンセル済みを意味します) 。)。
2. 注文テーブルと製品テーブルの関係
注文テーブルと製品テーブルの間には多対多の関係があります。つまり、注文には複数の注文を含めることができます。製品を複数注文することもできます。この関係を実現するには、注文と商品の関係を記録する注文商品テーブルを作成します。次に、order テーブルと product テーブルの関係の例を示します。
CREATE TABLE `order_item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `quantity` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `order_id` (`order_id`), KEY `product_id` (`product_id`), CONSTRAINT `order_item_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE, CONSTRAINT `order_item_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
order product テーブルには、id、order_id、product_id、数量の 4 つのフィールドがあります。このうち、id は注文商品テーブルの一意の識別子、order_id は注文の ID、product_id は商品の ID、数量は購入数量です。同時に、データの一貫性を確保するために、外部キー制約を定義して、order product テーブルの order_id フィールドと product_id フィールドがそれぞれ order テーブルと product テーブルの id フィールドに関連付けられるようにする必要があります。
3. オーダーテーブルとユーザーテーブルの関係
モールシステムでは一人のユーザーが複数の注文を行うことができますが、一つのオーダーは一人のユーザーにのみ属します。したがって、注文テーブルとユーザーテーブルは 1 対多の関係になります。この関係を実現するには、注文テーブルにユーザー ID フィールドが含まれている必要があります。次に、order テーブルと user テーブルの関係の例を示します。
CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_number` varchar(20) NOT NULL, `create_time` datetime NOT NULL, `status` int(1) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `order_number` (`order_number`), KEY `user_id` (`user_id`), CONSTRAINT `order_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
order テーブルに、新しい user_id フィールドが追加され、user_id フィールドは user テーブルの id フィールドに関連付けるために使用されます。同時に、order テーブルの user_id フィールドが user テーブルの id フィールドに関連付けられるようにするために、外部キー制約も定義する必要があります。
4. 概要
上記の例を通じて、基本的なモール注文テーブル構造を設計できます。注文テーブルには注文の基本情報が含まれ、注文商品テーブルには注文と商品の関係が記録され、注文テーブルはユーザー テーブルに関連付けられます。実際のニーズに応じて、上記に基づいて拡張および最適化することもできます。合理的なデータベーステーブル設計により、ショッピングモールの注文管理、クエリ、統計などの機能を実現できます。
注: 上記のサンプル コードは参照のみを目的としており、特定のデータベース テーブルの設計は実際のビジネス ニーズに応じて調整する必要があります。
以上がMySQL でモールの注文テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。