本文档全面概述了 Mall 电子商务系统中使用的数据库设计。它涵盖了数据库表的组织结构、命名约定、实体之间的关键关系以及重要的架构模块。有关特定架构类别的详细信息,请参阅订单管理表、产品管理表和用户管理表。
Mall 数据库架构遵循模块化设计,具有清晰的命名约定,将表组织到逻辑子系统中。每个表都以指示其所属子系统的标识符为前缀
| 前缀 | 描述 | 目的 |
|---|---|---|
cms_ | 内容管理系统 | 管理网站内容、营销材料和营销活动 |
oms_ | 订单管理系统 | 处理订单、购物车和支付 |
pms_ | 产品管理系统 | 管理产品、类别、品牌和库存 |
ums_ | 用户管理系统 | 处理用户、角色、权限和会员信息 |
下图说明了 Mall 数据库架构的高级组织结构
来源:document/sql/mall.sql1-377
document/pdm/mall.pdm1-100
mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java1-60
mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java1-50
OMS 架构管理订单处理工作流程,从购物车到完成订单。
来源:document/sql/mall.sql285-377
mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java1-231
mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java1-264
mall-mbg/src/main/resources/com/macro/mall/mapper/OmsCartItemMapper.xml1-100
mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderItemMapper.xml1-100
oms_cart_item 表存储客户购物车中的商品。每条记录代表客户添加到购物车但尚未购买的商品。
| 列 | 类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| product_id | bigint | 引用产品 |
| product_sku_id | bigint | 引用产品 SKU |
| member_id | bigint | 引用客户 |
| quantity | int | 购买数量 |
| price | decimal(10,2) | 添加到购物车时的商品价格 |
| product_pic | varchar(1000) | 产品图片 URL |
| product_name | varchar(500) | 产品名称 |
| product_sub_title | varchar(500) | 产品副标题/描述 |
| product_sku_code | varchar(200) | SKU 编码 |
| member_nickname | varchar(500) | 客户昵称 |
| create_date | datetime | 创建时间戳 |
| modify_date | datetime | 最后修改时间戳 |
| delete_status | int | 删除标志(0=活动,1=已删除) |
| product_category_id | bigint | 产品类别 ID |
| product_brand | varchar(200) | 产品品牌名称 |
| product_sn | varchar(200) | 产品序列号 |
| product_attr | varchar(500) | JSON 格式的产品属性 |
来源:document/sql/mall.sql285-308
mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java8-56
oms_order_item 表表示订单中的单个商品项。每条记录对应于订单中购买的特定商品。
| 列 | 类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| order_id | bigint | 引用订单 |
| order_sn | varchar | 订单序列号 |
| product_id | bigint | 引用产品 |
| product_pic | varchar | 产品图片 URL |
| product_name | varchar | 产品名称 |
| product_brand | varchar | 产品品牌 |
| product_sn | varchar | 产品序列号 |
| product_price | decimal(10,2) | 销售价格 |
| product_quantity | int | 购买数量 |
| product_sku_id | bigint | 引用产品 SKU |
| product_sku_code | varchar | SKU 编码 |
| product_category_id | bigint | 产品类别 ID |
| promotion_name | varchar | 应用的促销名称 |
| promotion_amount | decimal(10,2) | 促销折扣金额 |
| coupon_amount | decimal(10,2) | 优惠券折扣金额 |
| integration_amount | decimal(10,2) | 积分抵扣金额 |
| real_amount | decimal(10,2) | 折扣后最终价格 |
| gift_integration | int | 获得的积分 |
| gift_growth | int | 获得的成长值 |
| product_attr | varchar | JSON 格式的产品属性 |
来源:mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java7-62
mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderItemMapper.xml4-26
CMS 架构管理网站内容、促销区域和营销活动。
来源:document/sql/mall.sql78-221
document/pdm/mall.pdm400-700
有关详细信息,请参阅
下图说明了 Mall 系统主要实体之间的中心关系
来源:document/sql/mall.sql1-400
mall-admin/src/main/resources/dao/OmsOrderDao.xml1-90
mall-portal/src/main/resources/dao/PortalOrderItemDao.xml1-22
Mall 数据库遵循一致的数据类型和命名模式
| 类型 | 用途 | 示例 |
|---|---|---|
| bigint | 主键和外键 | id、product_id |
| varchar | 文本字段 | name、title、description |
| decimal(10,2) | 货币值 | price、amount |
| datetime | 时间戳 | create_time、payment_time |
| int | 状态标志、计数 | status、quantity |
| text | 大型内容 | content |
| varchar(json) | 序列化 JSON | product_attr |
oms_、pms_ 等)id<referenced_table_singular>_id(例如,product_id)create_time和modify_time或类似字段status或<action>_status(例如,delete_status)<table1>_<table2>_relation(例如,cms_subject_product_relation)来源:document/sql/mall.sql20-350
document/pdm/mall.pdm400-800
Mall电子商务数据库模式采用清晰、模块化的架构设计,将关注点分离到不同的子系统中。这种组织方式支持了电子商务平台从产品管理到订单处理的复杂需求,同时保持了实体之间清晰的关系。
有关特定模式区域的详细信息,请参阅