0.0.1 数据库说明
插件业务表
plg_ecommerce_category:多级分类,parent_uid -> category.uid。plg_ecommerce_product:商品主数据,关联category_uid、shipping_template_uid。plg_ecommerce_spec、plg_ecommerce_spec_value、plg_ecommerce_sku:规格组、规格值和可售 SKU,全部通过商品/规格 UID 关联。plg_ecommerce_shipping_template:按件数、重量或体积计算的基础运费模板。plg_ecommerce_store:到店自提门店。plg_ecommerce_order:订单主表,包含用户、地址、金额、门店和物流快照;新增payment_order_uid、payment_channel、payment_scene保存核心支付单及支付渠道快照。plg_ecommerce_order_item:订单商品不可变快照。plg_ecommerce_order_log:订单状态操作日志。plg_ecommerce_review:订单项唯一评价及商品、用户快照。
所有业务表保留内部自增 id,同时拥有唯一索引 uid;业务关系均使用 UID,不建立对内部 ID 的依赖。金额使用 decimal(12,2),重量/体积使用 decimal(12,3),JSON 字段用于数组或完整快照。
外部数据库引用
- 会员引用沿用核心公开业务编号
sys_member.sn,订单和评价响应不返回该值。 - 订单物流引用核心
sys_logistics_config.uid;核心表由server_api/sql/0.0.1/full.sql创建,不包含在插件迁移中。 - 插件通过核心
FinanceOrderProvider契约,将订单按ecommerce + order.uid幂等投影到sys_finance_order,供财务管理统一查询;插件不直接维护该核心表结构。 plg_ecommerce_order.payment_order_uid逻辑引用核心sys_payment_order.uid。核心仅通过PaymentOrderProvider契约读取可信金额并标记商城订单已支付,不直接按表名修改插件数据。- 文件字段仅保存相对路径,读取时使用核心统一文件地址解析器。
外部表反向引用
sys_finance_order.source_order_uid以source_plugin_id=ecommerce逻辑关联plg_ecommerce_order.uid。sys_payment_order.source_order_uid以source_plugin_id=ecommerce逻辑关联plg_ecommerce_order.uid。
文件归属和移除影响
无对其他插件表的引用。Remove 仅移除源码、菜单和插件登记;Purge 才删除插件表及数据,核心物流配置和已形成的财务订单历史索引不受影响。
| 检查项 | 结论 |
|---|---|
| 是否引用核心业务表 | 是,保存 sys_member.sn、sys_logistics_config.uid,并通过统一契约投影 sys_finance_order,不建立物理外键 |
| 是否引用其他插件表 | 否 |
| 是否允许 Purge | 是,Purge 仅清理 plg_ecommerce_* 表 |
| 是否自动删除文件 | 否,上传文件仍由核心文件管理策略处理 |