主题
8. 数据模型
实体关系图
实体定义
1. Purchase(采购单)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| purchase_id | string | 是 | 采购单 ID,如 PO-20260512-001 |
| supplier_name | string | 是 | 供应商名称 |
| cost_cny | decimal | 是 | 采购总成本(CNY) |
| purchase_date | date | 是 | 采购日期 |
| status | string | 是 | 状态:待入库 / 已完成 / 已取消 |
流程说明: 采购开单后状态为「待入库」,商品完成入库登记后流转为「已完成」。能入库的商品均为已鉴定通过的商品,不在系统内设鉴定环节。
2. Product(商品)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| product_id | string | 是 | 商品 ID |
| barcode | string | 是 | 商品条码,系统自动生成,格式 LS + YYYYMMDD + 4位流水号 |
| sku | string | 是 | 唯一 SKU,系统自动生成 |
| grade | string | 是 | 成色分级(95新/9成新/85新等) |
| images | string | 否 | 图片 URL 列表(JSON 数组) |
| description | string | 否 | 商品描述 |
| traceability | string | 否 | 溯源记录(JSON) |
| status | string | 是 | 商品状态:待入库 / 在库-珠海 / 在途 / 可售-纽约 / 已售 / 售后中 / 已报废 |
条码 vs SKU: barcode 是扫描标识(有日期前缀),SKU 是业务标识(可按品牌-品类生成)。入库登记时两者同时生成。
3. Warehouse(仓库)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| warehouse_id | string | 是 | 仓库 ID |
| name | string | 是 | 仓库名称 |
| region | string | 是 | 区域:珠海 / 纽约 |
| type | string | 是 | 类型:采购仓 / 销售仓 |
默认双仓: 中国珠海仓(采购仓)和美国纽约仓(销售仓)。维保操作在商品所在仓库进行,不再单独设立养护仓类型。
4. Inventory(库存)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| inventory_id | string | 是 | 库存记录 ID |
| product_id | string | 是 | 关联商品 ID |
| warehouse_id | string | 是 | 关联仓库 ID |
| status | string | 是 | 库存状态:在库 / 在途 / 预留 / 已售 |
| qty | int | 是 | 数量(通常为 1,二奢每件唯一) |
| last_check_time | datetime | 否 | 最后盘点时间 |
5. Transfer(调拨单)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| transfer_id | string | 是 | 调拨单 ID |
| from_warehouse | string | 是 | 源仓 ID(默认:珠海仓) |
| to_warehouse | string | 是 | 目标仓 ID(默认:纽约仓) |
| transfer_date | date | 是 | 调拨日期 |
| logistics_no | string | 否 | 跨境物流单号 |
| status | string | 是 | 状态:待出库 / 在途 / 已入库 |
说明: 调拨始终为珠海→纽约跨境。一旦发起即执行,不设判断。已入库后自动切换商品仓库归属。
6. Sale(销售订单)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| order_id | string | 是 | 订单 ID |
| channel | string | 是 | 渠道:Whatnot / 线下 / 私域 |
| amount_usd | decimal | 是 | 销售额(USD) |
| platform_fee_rate | decimal | 是 | 平台手续费率(如 Whatnot 12%) |
| customer_id | string | 否 | 客户 ID |
| sale_date | date | 是 | 销售日期 |
| status | string | 是 | 订单状态:待发货 / 已发货 / 已完成 / 已退货 |
说明: 销售开单时操作员扫描商品条码、登记售价。开单完成后金额自动流入 USD 销售池。
7. AfterSale(售后)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| after_sale_id | string | 是 | 售后单 ID |
| order_id | string | 是 | 关联销售订单 ID |
| type | string | 是 | 类型:退货 / 换货 |
| qc_result | string | 否 | 质检结果:可二次销售 / 不可销售 |
| final_action | string | 否 | 最终处理:二次上架 / 报废 |
说明: 售后简化为两条路径。可二次销售 → 二次上架(恢复库存 + 状态更新为重新上架)。不可销售 → 报废(生成成本支出记录)。两条路径均需退还客户款项,扣减 USD 销售池。
8. Maintenance(维保)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| maintenance_id | string | 是 | 维保记录 ID |
| product_id | string | 是 | 关联商品 ID |
| warehouse_id | string | 是 | 维保所在仓库 ID |
| type | string | 是 | 类型:养护 / 维修 |
| cost_amount | decimal | 是 | 维保成本金额 |
| currency | string | 是 | 币种:CNY(珠海仓)/ USD(纽约仓) |
| maintenance_time | datetime | 是 | 维保时间 |
说明: 维保可发生在珠海仓或纽约仓。扫码后登记养护/维修类型。成本按仓库归属资金池:珠海仓 → CNY 采购池,纽约仓 → USD 销售池。
9. StockCheck(盘点)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| check_id | string | 是 | 盘点任务 ID |
| warehouse_id | string | 是 | 关联仓库 ID |
| check_date | date | 是 | 盘点日期 |
| scanned_barcodes | string | 否 | 扫描条码清单(JSON 数组) |
| missing_products | string | 否 | 差异商品清单(JSON,含遗失/多出) |
| status | string | 是 | 盘点状态:进行中 / 已完成 |
说明: 盘点时批量扫描全部货架上的全部商品条码。扫描完成后系统自动比对扫描记录与系统库存记录,生成差异清单,批量调整后完成。
10. Finance(财务流水)
核心数据资产表,记录系统内每一笔收入和支出。所有业务操作最终都会在此表沉淀为可追溯的财务数据。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| finance_id | string | 是 | 流水 ID |
| type | string | 是 | 收支类型:收入 / 支出 |
| category | string | 是 | 收入来源 / 支出大类(见下方分类表) |
| sub_category | string | 是 | 收入子类 / 支出子类 |
| product_id | string | 否 | 关联商品 ID(产品关联成本必填,运营成本为空) |
| amount_cny | decimal | 否 | CNY 金额 |
| amount_usd | decimal | 否 | USD 金额 |
| related_id | string | 是 | 关联业务单据 ID |
| happen_date | date | 是 | 发生日期 |
收入分类(type = 收入):
| category | sub_category | 触发来源 |
|---|---|---|
| 销售收入 | Whatnot | F-007 销售开单 |
| 销售收入 | 线下 | F-007 销售开单 |
| 销售收入 | 私域 | F-007 销售开单 |
| 增资 | 股东增资 | F-011 手动录入 |
支出分类(type = 支出):
| category | sub_category | 触发来源 | 关联商品 |
|---|---|---|---|
| 产品关联成本 | 采购成本 | F-001 采购开单 | 是 |
| 产品关联成本 | 养护 | F-009 维保操作 | 是 |
| 产品关联成本 | 维修 | F-009 维保操作 | 是 |
| 产品关联成本 | 报废 | F-008 售后报废 | 是 |
| 运营成本 | 运营杂费 | 人工添加 | 否 |
| 运营成本 | 其他杂项 | 人工添加 | 否 |
设计要点: Finance 表是系统数据资产沉淀的核心。每条记录都可通过
related_id追溯到关联的业务单据。余额通过 Finance 流水汇总计算,而非直接存储,确保数据一致性。product_id为空的记录即为"非产品关联的运营成本",由人工手动添加。
11. CapitalPool(资金池)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| pool_id | string | 是 | 资金池 ID |
| currency | string | 是 | 币种:CNY / USD |
| name | string | 是 | 资金池名称 |
| current_balance | decimal | 是 | 当前余额 |
| target_balance | decimal | 否 | 目标余额(仅 CNY 池) |
| warn_line | decimal | 否 | 警戒线(仅 CNY 池) |
12. ProfitSharing(分润)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| share_id | string | 是 | 分润记录 ID |
| order_id | string | 是 | 关联销售订单 ID |
| gross_profit_usd | decimal | 是 | 毛利额(USD) |
| share_ratio | decimal | 是 | 分润比例 |
| share_amount_usd | decimal | 是 | 分润金额(USD) |
| status | string | 是 | 分润状态:待执行 / 已执行 |
13. CostItem(成本记录)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cost_id | string | 是 | 成本记录 ID |
| category | string | 是 | 成本大类:商品挂载 / 日常杂项 |
| sub_category | string | 是 | 成本子类:养护 / 维修 / 报废 / 运营杂费 / 其他 |
| product_id | string | 否 | 关联商品 ID(商品挂载成本必填,日常杂项可空) |
| warehouse_id | string | 是 | 发生仓库 ID |
| pool_id | string | 是 | 归属资金池 ID(由 warehouse 自动确定) |
| amount | decimal | 是 | 成本金额 |
| currency | string | 是 | 币种:CNY / USD(由 warehouse 自动确定) |
| cost_date | date | 是 | 发生日期 |
| description | string | 否 | 成本描述 |
设计要点: CostItem 是系统成本核算的核心实体。
warehouse_id决定pool_id和currency(珠海→CNY采购池,纽约→USD销售池)。商品挂载成本必须填写product_id,日常杂项可为空。