Cara melaksanakan reka bentuk pangkalan data SKU berbilang spesifikasi produk dalam PHP
Dalam platform e-dagang, spesifikasi produk adalah sangat penting konsep . Spesifikasi produk boleh difahami sebagai sifat dan ciri produk yang berbeza, seperti saiz, warna, berat, dsb. Dalam aplikasi praktikal, untuk spesifikasi yang berbeza, kita selalunya perlu menetapkan harga, inventori, gambar dan maklumat lain yang berbeza untuk setiap kombinasi. Ini memerlukan kami untuk mereka bentuk struktur pangkalan data yang sesuai untuk menyimpan dan mengurus spesifikasi produk dan maklumat berkaitan.
Artikel ini akan memperkenalkan cara melaksanakan reka bentuk pangkalan data SKU berbilang spesifikasi produk dalam PHP dan menyediakan contoh kod.
1. Reka bentuk jadual data
Untuk menyimpan spesifikasi produk dan maklumat berkaitan, kami perlu mereka bentuk dua jadual data utama: jadual produk dan lembaran spesifikasi.
Jadual produk (produk): menyimpan maklumat asas produk, seperti nama produk, keterangan, harga, dsb.
Spesifikasi: Menyimpan maklumat spesifikasi produk, seperti saiz, warna, berat, dsb.
Berikut ialah kod sampel untuk jadual produk dan jadual spesifikasi:
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;
Dalam jadual spesifikasi, medan product_id
字段是一个外键,关联到商品表中的id
menyedari perkaitan antara produk dan spesifikasi.
2 Sisipan data dan pertanyaan
Untuk menunjukkan cara memasukkan dan bertanya data spesifikasi produk, kami menganggap bahawa terdapat produk bernama "Telefon mudah alih", yang mempunyai dua spesifikasi: saiz dan warna.
Pertama, kita perlu masukkan maklumat asas produk:
INSERT INTO `products` (`name`, `description`, `price`, `created_at`, `updated_at`) VALUES ('手机', '这是一款智能手机', 1999.00, NOW(), NOW());
Kemudian, kami masukkan maklumat spesifikasi produk:
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, '颜色', '白色');
Dengan kod di atas, kami Maklumat spesifikasi produk telefon bimbit berjaya dimasukkan ke dalam pangkalan data.
Untuk menanyakan maklumat spesifikasi produk, kami boleh menggunakan pernyataan SQL dan kod PHP untuk mencapai ini. Berikut ialah contoh pertanyaan mudah:
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;
Melalui pertanyaan di atas, kita boleh mendapatkan nama produk, harga serta nama dan nilai spesifikasi yang sepadan.
3 Paparan dinamik spesifikasi produk
Dalam aplikasi praktikal, kami biasanya perlu memaparkan spesifikasi produk dan harga berkaitan, inventori, dsb. maklumat. Untuk mencapai ini kita boleh melakukannya menggunakan PHP dan JavaScript.
Di halaman hujung hadapan, kita boleh menggunakan kawalan seperti kotak lungsur, kotak radio atau kotak semak untuk memaparkan pilihan spesifikasi produk. Apabila pengguna memilih pilihan spesifikasi yang berbeza, kami boleh menghantar permintaan kepada perkhidmatan bahagian belakang melalui permintaan tak segerak Ajax, menanyakan harga yang sepadan dan maklumat inventori daripada pangkalan data, dan memaparkannya dalam masa nyata.
Berikut ialah kod contoh JavaScript ringkas yang melaksanakan paparan dinamik pilihan spesifikasi produk:
$(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); } }); }); });
Dalam kod PHP bahagian belakang, kami boleh menggunakan ID produk yang diterima , tanya maklumat spesifikasi yang sepadan daripada pangkalan data, dan kembalikannya ke halaman hujung hadapan untuk paparan.
$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);
Melalui kod di atas, kami melaksanakan reka bentuk pangkalan data SKU berbilang spesifikasi produk, dan menunjukkan cara memasukkan dan menanyakan maklumat spesifikasi produk, dan memaparkan maklumat spesifikasi produk secara dinamik melalui halaman hadapan.
Sudah tentu, ini hanyalah contoh mudah, dan aplikasi sebenar mungkin lebih rumit. Saya harap artikel ini dapat membantu pembangun yang perlu melaksanakan pelbagai spesifikasi produk SKU dalam PHP.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan reka bentuk pangkalan data untuk SKU berbilang spesifikasi produk dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!