面料管理系统 - 数据库表设计


一、系统基础表

1. sys_user 系统用户表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
employee_no VARCHAR(64) UNIQUE 员工号
username VARCHAR(64) UNIQUE, NOT NULL 登录用户名
password VARCHAR(128) NOT NULL 密码(加密存储)
real_name VARCHAR(64) 真实姓名
phone VARCHAR(32) 手机号
email VARCHAR(128) 邮箱
avatar_attachment_id BIGINT FK 头像附件(关联sys_attachment.id)
role VARCHAR(32) NOT NULL 角色(admin/operator/sales等)
status TINYINT NOT NULL DEFAULT 1 状态 1启用 0停用
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

2. sys_message 系统消息表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
user_id BIGINT FK, NOT NULL 接收用户
title VARCHAR(128) NOT NULL 消息标题
content TEXT NOT NULL 消息内容
type VARCHAR(32) NOT NULL 消息类型(inventory_alert/system/business等)
biz_type VARCHAR(64) 关联业务类型(sample_spu/bulk_contract等)
biz_id BIGINT 关联业务ID
is_read TINYINT NOT NULL DEFAULT 0 是否已读 0未读 1已读
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

3. sys_attachment 附件表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
file_name VARCHAR(256) NOT NULL 原始文件名
file_path VARCHAR(512) NOT NULL 存储路径
file_size BIGINT 文件大小(字节)
file_type VARCHAR(64) 文件MIME类型
biz_type VARCHAR(64) NOT NULL 关联业务类型(sample_spu/bulk_contract等)
uploader_id BIGINT FK 上传人
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

4. api_call_log API调用日志表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
request_url VARCHAR(512) NOT NULL 请求URL
api_name VARCHAR(50) 接口名称
request_method VARCHAR(16) NOT NULL 请求方法
request_headers TEXT 请求头
request_body TEXT 请求体
response_status INT 响应状态码
response_body TEXT 响应体
client_ip VARCHAR(64) 客户端IP
user_id BIGINT 操作用户ID
duration_ms BIGINT 耗时(毫秒)
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

二、面料样品业务表

5. sample_spu 面料样品SPU表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
spu_code VARCHAR(64) UNIQUE, NOT NULL SPU编码
name VARCHAR(128) NOT NULL 品名(如"玫瑰公主")
brand VARCHAR(64) 品牌
category VARCHAR(64) 面料分类
material VARCHAR(128) 材质成分
specification VARCHAR(256) 规格说明
season VARCHAR(32) 季节(如"2026春夏")
unit VARCHAR(16) NOT NULL 计量单位(m/kg等)
factory_name VARCHAR(128) 工厂名称
image_attachment_id BIGINT FK 主图附件(关联sys_attachment.id)
reference_unit_price DECIMAL(10,2) 工厂报价/参考大货单价
stock_alert_threshold DECIMAL(12,2) 库存预警值(SPU级:该SPU下所有SKU库存总和低于此值触发预警)
remark VARCHAR(512) 备注
status TINYINT NOT NULL DEFAULT 1 状态 1启用 0停用
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

6. sample_sku 面料样品SKU表

SKU N:1 SPU,库存直接存储在SKU表中。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
spu_id BIGINT FK, NOT NULL 所属SPU
sku_code VARCHAR(64) UNIQUE, NOT NULL SKU编码
color VARCHAR(64) 颜色
pattern VARCHAR(64) 花型/印花
weight DECIMAL(8,2) 克重(g/㎡)
width DECIMAL(8,2) 幅宽(cm)
attribute_json JSON 其他SKU属性(扩展用)
image_attachment_ids JSON SKU图片附件ID列表(如[1,2,3],关联sys_attachment.id,支持多张)
stock_quantity DECIMAL(12,2) NOT NULL DEFAULT 0 当前库存数量
stock_alert_threshold DECIMAL(12,2) 库存预警值(SKU级:该SKU库存低于此值触发预警)
remark VARCHAR(512) 备注
status TINYINT NOT NULL DEFAULT 1 状态 1启用 0停用
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

7. sample_inbound 面料样品入库表

每行对应一个SKU的一次入库记录,同一次入库操作可产生多行(不同SKU)。通过 inbound_no 关联同一次操作。入库不存在分次付款。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
inbound_no VARCHAR(64) NOT NULL 入库操作编号(同一次操作共享)
sku_id BIGINT FK, NOT NULL 关联SKU
source_type TINYINT NOT NULL 来源类型 1研发 2购买
quantity DECIMAL(12,2) NOT NULL 入库数量
unit_cost DECIMAL(10,2) 单位成本
total_cost DECIMAL(12,2) 总成本(数量×单价)
supplier VARCHAR(128) 供应商(购买来源时填写)
dt DATE NOT NULL 业务日期(用于利润聚合计算)
operator_id BIGINT FK 操作人
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

8. sample_transaction 面料样品交易表

交易主表,每次交易一行。收款信息内联(样品不分期),利润可基于入库成本(sample_inbound)和交易价格按 dt 实时计算,无需独立利润表。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
transaction_no VARCHAR(64) UNIQUE, NOT NULL 交易编号
total_original_price DECIMAL(12,2) NOT NULL 原价合计
total_discounted_price DECIMAL(12,2) NOT NULL 折扣价合计(实际应收)
received_amount DECIMAL(12,2) NOT NULL DEFAULT 0 实际已收金额
is_completed TINYINT NOT NULL DEFAULT 0 是否已收款 0未收款 1已收款
payment_method VARCHAR(32) 支付方式(转账/现金/支票等)
payment_date DATE 收款日期
payment_attachment_id BIGINT FK 收款凭证附件(关联sys_attachment.id)
invoice_attachment_id BIGINT FK 发票附件(关联sys_attachment.id)
dt DATE NOT NULL 业务日期(用于利润聚合计算)
operator_id BIGINT FK 操作人
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

9. sample_outbound 面料样品出库明细表

交易出库明细,每行对应一个SKU的出库情况,记录单价和长度。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
transaction_id BIGINT FK, NOT NULL 所属交易
sku_id BIGINT FK, NOT NULL 关联SKU
unit_original_price DECIMAL(10,2) NOT NULL 原始单价
unit_discounted_price DECIMAL(10,2) NOT NULL 折扣单价
quantity DECIMAL(12,2) NOT NULL 出库长度/数量
damage_quantity DECIMAL(12,2) NOT NULL DEFAULT 0 折损量
actual_quantity DECIMAL(12,2) NOT NULL 实际量(客户实收)
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

10. non_business_expense

记录与系统业务无直接关系的费用支出,如差旅费、报销等。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
expense_type VARCHAR(64) NOT NULL 费用类型(差旅/报销/办公用品等)
amount DECIMAL(12,2) NOT NULL 金额
description VARCHAR(512) 详细描述
attachment_ids VARCHAR(512) 附件ID列表(JSON数组,如"[1,2,3]")
dt DATE NOT NULL 业务日期(用于费用聚合计算)
operator_id BIGINT FK 申请人
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

三、大货合同交易业务表

11. bulk_client 客户表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
client_name VARCHAR(128) NOT NULL 客户名称
contact_person VARCHAR(64) 联系人
phone VARCHAR(32) 联系电话
email VARCHAR(128) 邮箱
address VARCHAR(256) 地址
remark VARCHAR(512) 备注
status TINYINT NOT NULL DEFAULT 1 状态 1启用 0停用
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

12. bulk_transaction 大货交易表

大货为背对背交易:一个买家对应多个卖家,每个卖家对应一份合同,这些主体和合同共同构成一次交易。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
transaction_no VARCHAR(64) UNIQUE, NOT NULL 交易编号
buyer_client_id BIGINT FK, NOT NULL 买家(关联bulk_client.id)
transaction_status TINYINT NOT NULL DEFAULT 0 交易状态 0草稿/洽谈中 10合同签署中 20执行中 30财务结算中 40已完成 99已取消
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
operator_id BIGINT FK 负责人
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

13. bulk_contract 大货合同表

每份合同属于一次交易,公司作为中间商,合同可以是与买方的销售合同或与卖方的采购合同。分期收付款计划拆分至 bulk_contract_stage 表管理。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
contract_no VARCHAR(64) UNIQUE, NOT NULL 合同编号
transaction_id BIGINT FK, NOT NULL 所属交易
contract_type TINYINT NOT NULL 合同类型 1采购合同(对卖家) 2销售合同(对买家)
client_id BIGINT FK, NOT NULL 对方客户(买方或卖方,关联bulk_client.id)
title VARCHAR(256) 合同标题
total_amount DECIMAL(14,2) 合同总金额
paid_amount DECIMAL(14,2) DEFAULT 0 已付/已收金额
tax_rate DECIMAL(5,4) 税率(如 0.1300 = 13%)
tax_amount DECIMAL(14,2) 税额
is_tax_inclusive TINYINT 合同金额是否含税 1含税 0不含税
contract_status TINYINT NOT NULL DEFAULT 0 合同状态 0待执行 1执行中 2已完成 3已取消
contract_attachment_id BIGINT FK 合同文件附件(关联sys_attachment.id)
sign_date DATE 签约日期
delivery_date DATE 预计交货日期
dt DATE NOT NULL 业务日期(用于利润聚合计算)
operator_id BIGINT FK 负责人
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

14. bulk_contract_stage 合同收付款阶段表

管理合同的分期付款/收款计划与执行状态,替代原 JSON 字段。每个阶段可关联多笔 bulk_payment 流水。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
contract_id BIGINT FK, NOT NULL 所属合同
stage_name VARCHAR(64) NOT NULL 阶段名称(定金/生产款/尾款/质保金)
stage_type TINYINT NOT NULL 1收款计划(销售合同) 2付款计划(采购合同)
plan_amount DECIMAL(14,2) NOT NULL 计划金额
plan_ratio DECIMAL(5,4) 计划比例(如 0.3000 = 30%)
plan_date DATE 计划日期(用于生成催款/付款提醒)
actual_paid_amount DECIMAL(14,2) NOT NULL DEFAULT 0 实际已收/已付金额(通过流水表聚合更新)
is_completed TINYINT NOT NULL DEFAULT 0 该阶段是否结清 0未结清 1已结清
sort_order INT NOT NULL DEFAULT 0 显示排序
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

15. bulk_contract_item 大货合同明细表

合同内的面料明细,存储完整的SPU/SKU描述信息(与样品SPU/SKU无强关联)。

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
contract_id BIGINT FK, NOT NULL 所属合同
spu_name VARCHAR(128) NOT NULL 面料品名
sku_name VARCHAR(128) SKU名称/描述
material VARCHAR(128) 材质成分
color VARCHAR(64) 颜色
pattern VARCHAR(64) 花型/印花
specification VARCHAR(256) 规格说明
unit VARCHAR(16) NOT NULL 单位
unit_price DECIMAL(10,2) NOT NULL 单价
quantity DECIMAL(12,2) NOT NULL 数量
total_price DECIMAL(14,2) NOT NULL 总价
delivered_quantity DECIMAL(12,2) DEFAULT 0 已交货数量
is_completed TINYINT NOT NULL DEFAULT 0 该明细是否完成 0未完成 1已完成
dt DATE NOT NULL 业务日期(用于利润聚合计算)
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

16. bulk_payment 大货合同收付款记录表

字段 类型 约束 说明
id BIGINT PK, AUTO_INCREMENT 主键
contract_id BIGINT FK, NOT NULL 所属合同
contract_stage_id BIGINT FK 所属收付款阶段(关联bulk_contract_stage.id,可为空)
amount DECIMAL(14,2) NOT NULL 金额
payment_type TINYINT NOT NULL 类型 1收款 2付款
payment_method VARCHAR(32) 支付方式(转账/现金/支票等)
payment_date DATE NOT NULL 收付款日期
image_attachment_id BIGINT FK 收付款凭证图片附件(关联sys_attachment.id)
dt DATE NOT NULL 业务日期(用于利润聚合计算)
operator_id BIGINT FK 操作人
remark VARCHAR(512) 备注
is_deleted TINYINT NOT NULL DEFAULT 0 软删除 0正常 1已删除
c_time DATETIME NOT NULL 创建时间
u_time DATETIME NOT NULL 更新时间

表关系概览

sys_user
  ├──< sys_message            (user_id)
  ├──< sample_inbound         (operator_id)
  ├──< sample_transaction     (operator_id)
  ├──< bulk_transaction       (operator_id)
  └──< bulk_contract          (operator_id)

sys_attachment
  ├──> sys_user               (avatar_attachment_id)
  ├──> sample_spu             (image_attachment_id)
  ├──> sample_sku             (image_attachment_ids, JSON多张)
  ├──> sample_transaction     (invoice_attachment_id, payment_attachment_id)
  ├──> bulk_contract          (contract_attachment_id)
  └──> bulk_payment           (image_attachment_id)

sample_spu 1──N sample_sku
sample_sku
  ├──< sample_inbound         (sku_id)
  └──< sample_outbound        (sku_id)

sample_transaction
  └──< sample_outbound        (transaction_id)

bulk_client
  ├──< bulk_transaction       (buyer_client_id, 作为买家)
  └──< bulk_contract          (client_id, 作为买方或卖方)

bulk_transaction 1──N bulk_contract    (transaction_id)
bulk_contract
  ├──< bulk_contract_stage   (contract_id)
  ├──< bulk_contract_item    (contract_id)
  └──< bulk_payment          (contract_id)
bulk_contract_stage
  └──< bulk_payment          (contract_stage_id, 可为空)

non_business_expense          (独立,不关联业务表)