mysql实现商品多sku的插入和查询
时间: 2024-02-18 07:00:31 浏览: 193
mysql大批量数据插入
4星 · 用户满意度95%
MySQL实现商品多SKU的插入和查询可以通过以下步骤实现:
1. 创建商品表(product),并包含商品的基本信息,如商品ID、商品名称、商品描述等。
```sql
CREATE TABLE product (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
description TEXT,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
2. 创建SKU表(sku),并包含商品的SKU属性及其对应的价格、库存等信息,如颜色、尺码等。
```sql
CREATE TABLE sku (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
product_id INT(11) UNSIGNED NOT NULL,
color VARCHAR(255),
size VARCHAR(255),
price DECIMAL(10,2) NOT NULL DEFAULT '0.00',
stock INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX (product_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
3. 在SKU表中添加外键约束,以确保每个SKU都与一个商品相关联。
```sql
ALTER TABLE sku ADD CONSTRAINT fk_sku_product_id FOREIGN KEY (product_id) REFERENCES product(id) ON DELETE CASCADE ON UPDATE CASCADE;
```
4. 插入商品数据时,先插入商品基本信息,再插入SKU信息,每个SKU都需要指定对应的商品ID。
```sql
-- 插入商品基本信息
INSERT INTO product (name, description) VALUES ('iPhone 11', 'Apple iPhone 11 (64GB) - Black');
-- 插入商品SKU信息
INSERT INTO sku (product_id, color, size, price, stock) VALUES (1, 'Black', '64GB', '6999.00', 100);
INSERT INTO sku (product_id, color, size, price, stock) VALUES (1, 'Black', '128GB', '7499.00', 50);
INSERT INTO sku (product_id, color, size, price, stock) VALUES (1, 'White', '64GB', '6999.00', 80);
INSERT INTO sku (product_id, color, size, price, stock) VALUES (1, 'White', '128GB', '7499.00', 30);
```
5. 查询商品及其SKU信息时,可以使用JOIN操作。
```sql
-- 查询商品及其SKU信息
SELECT p.*, s.color, s.size, s.price, s.stock
FROM product p
JOIN sku s ON p.id = s.product_id
WHERE p.id = 1;
```
以上就是MySQL实现商品多SKU的插入和查询的步骤,希望对你有所帮助。
阅读全文