PMS 商品模块 + 动态翻译设计说明书
一、模块总体定位
PMS(Product Master System)是供应链体系的商品主数据中心,负责统一维护商品的品牌、分类、标签、单位、材质、存储方式、分拣区域、SPU、SKU 及多语言翻译。
该模块与采购、仓储、销售、门店、会员等模块共用商品主数据,实现数据一致性与多语言国际化展示。
二、主要表结构
● pms_brand(商品品牌表)
定义商品品牌信息,如品牌编码、品牌名称、品牌图标等。
● pms_goods_category(商品分类表)
定义商品所属的分类层级结构,可用于前端展示与库存控制。
● pms_tag(商品标签表)
定义商品标签,如‘热卖’‘新品’,支持图标与文字标签两种形式。
● pms_goods_unit(商品单位表)
定义计量单位,区分计重与计件单位。
● pms_goods_material(商品材质表)
定义商品材质类型,如金属、塑料、玻璃等。
● pms_goods_storage_method(商品存储方式表)
定义商品的存储环境(常温、冷藏、冷冻等)及温度范围。
● pms_goods(商品SPU表)
标准商品定义,包含品牌、分类、材质、标签、存储方式等核心属性。
● pms_goods_sku(商品SKU表)
定义商品的规格与条码,是库存管理与销售的最小单元。
● pms_goods_sku_unit(商品规格单位关系表)
定义 SKU 的销售、采购单位及价格信息。
● pms_pick_area(商品分拣区域表)
定义仓库或门店分拣区域,如冷藏区、常温区。
● sys_dynamic_translation(动态翻译表)
统一管理多语言翻译内容,用于商品、品牌、分类、标签等实体的多语言显示。
三、动态翻译表设计说明
表名:sys_dynamic_translation
功能:存储系统内任意实体的多语言翻译字段。通过 entity_type + entity_id + field_name + language_code 进行唯一定位。
主要字段说明:
- entity_type:实体类型,如 product_spu、product_brand
- entity_id:对应实体主表 ID
- language_code:语言代码,如 zh_CN、en_US、ja_JP
- field_name:字段名称,如 goods_name、description
- field_value:翻译后的字段值
四、翻译示例
示例:
entity_type = 'product_spu', entity_id = 1001
| 语言 | 字段 | 值 |
|---|---|---|
| zh_CN | goods_name | 可口可乐500ml |
| en_US | goods_name | Coca-Cola 500ml |
| ja_JP | goods_name | コカ・コーラ500ml |
五、Redis缓存设计
Key 格式: i18n:{entity_type}:{entity_id}:{language_code}
Value(Hash结构): { "field_name": "field_value" }
查询逻辑:
- 优先查Redis;
- 无缓存则查数据库并回写缓存;
- 修改翻译后,刷新对应Key。
六、ER结构说明
pms_goods_category (1:N)
→ pms_goods (SPU)
├── brand_id → pms_brand
├── material_id → pms_goods_material
├── storage_method_id → pms_goods_storage_method
├── pick_area_id → pms_pick_area
├── (1:N) → pms_goods_sku → (1:N) → pms_goods_sku_unit
└── (1:N) → sys_dynamic_translation (多语言)
七、总结
PMS 模块通过 sys_dynamic_translation 实现了商品主数据的全球化能力。
所有多语言展示均通过该表动态维护并缓存,便于扩展与国际化部署。