PHP で製品の複数仕様 SKU のデータベース設計を実装する方法
e コマース プラットフォームでは、製品仕様は非常に重要な概念です。製品仕様は、サイズ、色、重量など、製品のさまざまな属性や特性として理解できます。実際のアプリケーションでは、さまざまな仕様に対して、組み合わせごとに異なる価格、在庫、写真、その他の情報を設定する必要があることがよくあります。そのためには、製品仕様と関連情報を保存および管理するための適切なデータベース構造を設計する必要があります。
この記事では、PHP で複数の製品仕様 SKU のデータベース設計を実装する方法を紹介し、コード例を示します。
1. データ テーブルの設計
製品仕様と関連情報を保存するには、製品テーブルと仕様テーブルという 2 つの主要なデータ テーブルを設計する必要があります。
製品テーブル (製品): 製品名、説明、価格などの製品の基本情報が格納されます。
仕様: サイズ、色、重量などの製品仕様情報を保存します。
製品テーブルと仕様テーブルのサンプル コードを次に示します。
CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `description` text NOT NULL, `price` decimal(10,2) NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `specifications` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `value` varchar(255) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`product_id`) REFERENCES `products`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
仕様テーブルの product_id
フィールドは、## に関連する外部キーです。製品テーブルの #id フィールドは、製品と仕様の関係を表します。
2. データの挿入とクエリ
製品仕様データの挿入とクエリの方法を示すために、「携帯電話」という名前の製品があると仮定します。サイズと色という 2 つの仕様があります。 まず、製品の基本情報を挿入する必要があります:INSERT INTO `products` (`name`, `description`, `price`, `created_at`, `updated_at`) VALUES ('手机', '这是一款智能手机', 1999.00, NOW(), NOW());
INSERT INTO `specifications` (`product_id`, `name`, `value`) VALUES (1, '尺寸', '6寸'); INSERT INTO `specifications` (`product_id`, `name`, `value`) VALUES (1, '颜色', '黑色'); INSERT INTO `specifications` (`product_id`, `name`, `value`) VALUES (1, '颜色', '白色');
SELECT p.name, p.price, s.name, s.value FROM products p JOIN specifications s ON p.id = s.product_id WHERE p.id = 1;
3. 製品仕様の動的表示
実際のアプリケーションでは、通常、製品仕様と関連する価格、在庫、その他の情報を動的に表示する必要があります。これを実現するには、PHP と JavaScript を使用します。 フロントエンド ページでは、ドロップダウン ボックス、ラジオ ボックス、チェック ボックスなどのコントロールを使用して、製品仕様のオプションを表示できます。ユーザーがさまざまな仕様オプションを選択すると、Ajax 非同期リクエストを通じてバックエンド サービスにリクエストを送信し、データベースから対応する価格と在庫情報をクエリして、リアルタイムで表示できます。 以下は、製品仕様オプションの動的な表示を実装する簡単な JavaScript サンプル コードです。$(document).ready(function() { $('#specification-select').on('change', function() { var productId = $(this).val(); $.ajax({ url: 'getProductInfo.php', type: 'POST', data: {productId: productId}, success: function(response) { var productInfo = JSON.parse(response); $('#price').text(productInfo.price); $('#stock').text(productInfo.stock); } }); }); });
$productId = $_POST['productId']; // 查询规格信息 $query = "SELECT name, value FROM specifications WHERE product_id = :productId"; $stmt = $pdo->prepare($query); $stmt->bindParam(':productId', $productId, PDO::PARAM_INT); $stmt->execute(); $specifications = $stmt->fetchAll(PDO::FETCH_ASSOC); // 查询价格和库存信息 $query = "SELECT price, stock FROM products WHERE id = :productId"; $stmt = $pdo->prepare($query); $stmt->bindParam(':productId', $productId, PDO::PARAM_INT); $stmt->execute(); $productInfo = $stmt->fetch(PDO::FETCH_ASSOC); $response = array( 'specifications' => $specifications, 'price' => $productInfo['price'], 'stock' => $productInfo['stock'] ); echo json_encode($response);
以上がPHP で製品の複数仕様 SKU のデータベース設計を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。