菜单

数据库 Schema

相关源文件

目的与范围

本文档全面概述了 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)

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)

oms_cart_item 表存储客户购物车中的商品。每条记录代表客户添加到购物车但尚未购买的商品。

类型描述
idbigint主键
product_idbigint引用产品
product_sku_idbigint引用产品 SKU
member_idbigint引用客户
quantityint购买数量
pricedecimal(10,2)添加到购物车时的商品价格
product_picvarchar(1000)产品图片 URL
product_namevarchar(500)产品名称
product_sub_titlevarchar(500)产品副标题/描述
product_sku_codevarchar(200)SKU 编码
member_nicknamevarchar(500)客户昵称
create_datedatetime创建时间戳
modify_datedatetime最后修改时间戳
delete_statusint删除标志(0=活动,1=已删除)
product_category_idbigint产品类别 ID
product_brandvarchar(200)产品品牌名称
product_snvarchar(200)产品序列号
product_attrvarchar(500)JSON 格式的产品属性

来源:document/sql/mall.sql285-308
mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java8-56

订单项 (oms_order_item)

oms_order_item 表表示订单中的单个商品项。每条记录对应于订单中购买的特定商品。

类型描述
idbigint主键
order_idbigint引用订单
order_snvarchar订单序列号
product_idbigint引用产品
product_picvarchar产品图片 URL
product_namevarchar产品名称
product_brandvarchar产品品牌
product_snvarchar产品序列号
product_pricedecimal(10,2)销售价格
product_quantityint购买数量
product_sku_idbigint引用产品 SKU
product_sku_codevarcharSKU 编码
product_category_idbigint产品类别 ID
promotion_namevarchar应用的促销名称
promotion_amountdecimal(10,2)促销折扣金额
coupon_amountdecimal(10,2)优惠券折扣金额
integration_amountdecimal(10,2)积分抵扣金额
real_amountdecimal(10,2)折扣后最终价格
gift_integrationint获得的积分
gift_growthint获得的成长值
product_attrvarcharJSON 格式的产品属性

来源: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)

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主键和外键idproduct_id
varchar文本字段nametitledescription
decimal(10,2)货币值priceamount
datetime时间戳create_timepayment_time
int状态标志、计数statusquantity
text大型内容content
varchar(json)序列化 JSONproduct_attr

命名约定

  • 表名:小写带下划线,以子系统代码为前缀(oms_pms_ 等)
  • 主键:通常命名为id
  • 外键:命名为<referenced_table_singular>_id(例如,product_id
  • 时间戳:通常包括create_timemodify_time或类似字段
  • 状态标志:通常使用status<action>_status(例如,delete_status
  • 连接表:命名为<table1>_<table2>_relation(例如,cms_subject_product_relation

来源:document/sql/mall.sql20-350
document/pdm/mall.pdm400-800

结论

Mall电子商务数据库模式采用清晰、模块化的架构设计,将关注点分离到不同的子系统中。这种组织方式支持了电子商务平台从产品管理到订单处理的复杂需求,同时保持了实体之间清晰的关系。

有关特定模式区域的详细信息,请参阅