
为支持SKU、渠道、库存状态的多维度管理,核心设计三张表(SKU表、渠道表、库存表),通过外键关联,库存表包含状态字段区分可用、冻结、预警,实现多渠道库存的精准追踪。
老师口吻解释核心表逻辑:
| 表名 | 定义 | 关键字段 | 关联关系 | 使用场景 |
|---|---|---|---|---|
| SKU表 | 商品信息表 | SKU_ID(主键)、商品名称、类别、规格 | 无(独立表) | 存储所有SKU的基础信息,唯一标识商品 |
| 渠道表 | 渠道信息表 | 渠道ID(主键)、渠道名称、类型 | 无(独立表) | 存储所有渠道的基础信息,唯一标识渠道 |
| 库存表 | 库存记录表 | 库存ID(主键)、SKU_ID(外键)、渠道ID(外键)、库存数量、状态(枚举)、更新时间 | SKU表和渠道表 | 记录每个渠道的每个SKU的库存状态,支持多维度查询 |
注意点:状态字段用枚举(避免歧义),外键约束保证数据一致性,库存数量和状态字段实时更新,支持业务逻辑(如预警阈值)。
伪代码示例(MySQL):
-- SKU表
CREATE TABLE sku (
sku_id INT PRIMARY KEY,
sku_name VARCHAR(100),
category VARCHAR(50),
spec VARCHAR(50),
create_time TIMESTAMP
);
-- 渠道表
CREATE TABLE channel (
channel_id INT PRIMARY KEY,
channel_name VARCHAR(100),
channel_type VARCHAR(20),
address VARCHAR(200)
);
-- 库存表
CREATE TABLE inventory (
inventory_id INT PRIMARY KEY,
sku_id INT,
channel_id INT,
quantity INT,
status ENUM('可用', '冻结', '预警'),
update_time TIMESTAMP,
FOREIGN KEY (sku_id) REFERENCES sku(sku_id),
FOREIGN KEY (channel_id) REFERENCES channel(channel_id)
);
-- 插入示例
INSERT INTO sku (sku_id, sku_name, category, spec) VALUES (1, '经典辣条', '辣条', '原味50g');
INSERT INTO channel (channel_id, channel_name, channel_type, address) VALUES (1, '京东商城', '线上电商', '北京');
INSERT INTO inventory (inventory_id, sku_id, channel_id, quantity, status, update_time) VALUES (1, 1, 1, 1000, '可用', NOW());
-- 查询示例
SELECT s.sku_name, c.channel_name, i.quantity, i.status
FROM inventory i
JOIN sku s ON i.sku_id = s.sku_id
JOIN channel c ON i.channel_id = c.channel_id
WHERE s.category = '辣条' AND c.channel_type = '线上电商';
面试官您好,为卫龙多渠道库存管理系统设计数据库表结构,核心思路是围绕SKU、渠道、库存状态三维度,设计三张核心表并建立关联。首先,SKU表存储商品基本信息(如辣条、豆干的SKU编码、名称、类别等),每个SKU唯一标识一种商品;渠道表存储线上电商、线下门店等渠道信息(如渠道ID、名称、类型);库存表关联SKU和渠道,记录每个渠道的库存数量,并设置状态字段(可用、冻结、预警),比如冻结因订单锁定,预警因库存低于安全阈值。三张表通过外键关联,实现多对多关系,支持多渠道库存的精准追踪。例如,查询某渠道某SKU的库存状态,通过JOIN操作即可获取,满足业务对库存多维度管理的要求。