文章目录一、概述二、学习目标与前置知识三、数据库选型与字符集配置3.1 选型配置总览3.2 创建数据库3.3 开发环境数据源配置四、表设计规范——统一标准决定长期可维护性4.1 表名前缀4.2 主键策略4.3 通用字段模板4.4 逻辑删除机制4.5 多租户隔离(app_id)五、数据库表全景总览六、核心业务域表结构详解6.1 系统域超级管理员表 `windshop_admin_user`应用配置表 `windshop_app`微信小程序配置表 `windshop_app_wx`其他系统表6.2 商品域——最复杂的业务域商品主表 `windshop_product`商品分类表 `windshop_product_category`商品 SKU 表 `windshop_product_sku`商品域关系模型6.3 订单域——电商系统的核心订单主表 `windshop_order`订单状态机订单商品表 `windshop_order_product`订单域其他关联表6.4 用户域用户实体映射 `windshop_user`用户域关联表6.5 优惠券表 `windshop_coupon`6.6 店铺管理域——RBAC 权限模型6.7 门店域、文件域与设置域七、表关系分析7.1 核心 ER 关系图7.2 核心关联关系汇总八、索引设计策略8.1 主键策略8.2 业务索引总览8.3 金额字段为什么用 `decimal`8.4 为什么不用数据库外键九、HikariCP 连接池配置十、数据库初始化操作10.1 创建数据库10.2 导入初始化脚本10.3 验证初始化结果10.4 初始数据说明十一、常见问题解答Q1:为什么 `order_product` 要冗余存储商品名称和价格?Q2:`app_id` 字段在单商户模式下有什么作用?Q3:导入 SQL 报错 "Character set 'utf8mb4' is not supported"?Q4:`page` 表的 `page_data` 字段为什么是 JSON?Q5:导入后表数据为空怎么办?十二、实践练习练习1:数据库初始化验证练习2:设计一张新表练习3:编写关联查询练习4:SQL 查询练习十三、总结一、概述数据库设计是任何业务系统最底层的基础设施,电商系统尤甚——商品、订单、用户、营销、物流等业务域高度耦合,一个表结构设计不当就可能引发连锁问题。本文以开源电商项目wind Shop为蓝本,从零拆解一套生产级电商数据库的设计思路、表结构细节、索引策略以及初始化流程,帮助读者掌握企业级数据建模方法论。二、学习目标与前置知识完成本文学习后,你将能够:理解 wind Shop 数据库的整体架构与表命名规范掌握商品、订单、用户、店铺等核心业务域的表结构与字段含义理解表之间的关联关系以及多租户隔离机制掌握 MyBatis-Plus 全局配置(逻辑删除、表前缀、自动填充)独立完成数据库初始化与验证,理解索引设计策略前置知识要求:了解关系型数据库基本概念(表、主键、外键、索引)、SQL 基本语法(CREATE TABLE、SELECT、JOIN),并已完成 MySQL 环境安装。三、数据库选型与字符集配置3.1 选型配置总览配置项值说明
Java 企业级 SaaS 架构 B2C 微信小程序电商项目实战训练营02-数据库设计
文章目录一、概述二、学习目标与前置知识三、数据库选型与字符集配置3.1 选型配置总览3.2 创建数据库3.3 开发环境数据源配置四、表设计规范——统一标准决定长期可维护性4.1 表名前缀4.2 主键策略4.3 通用字段模板4.4 逻辑删除机制4.5 多租户隔离(app_id)五、数据库表全景总览六、核心业务域表结构详解6.1 系统域超级管理员表 `windshop_admin_user`应用配置表 `windshop_app`微信小程序配置表 `windshop_app_wx`其他系统表6.2 商品域——最复杂的业务域商品主表 `windshop_product`商品分类表 `windshop_product_category`商品 SKU 表 `windshop_product_sku`商品域关系模型6.3 订单域——电商系统的核心订单主表 `windshop_order`订单状态机订单商品表 `windshop_order_product`订单域其他关联表6.4 用户域用户实体映射 `windshop_user`用户域关联表6.5 优惠券表 `windshop_coupon`6.6 店铺管理域——RBAC 权限模型6.7 门店域、文件域与设置域七、表关系分析7.1 核心 ER 关系图7.2 核心关联关系汇总八、索引设计策略8.1 主键策略8.2 业务索引总览8.3 金额字段为什么用 `decimal`8.4 为什么不用数据库外键九、HikariCP 连接池配置十、数据库初始化操作10.1 创建数据库10.2 导入初始化脚本10.3 验证初始化结果10.4 初始数据说明十一、常见问题解答Q1:为什么 `order_product` 要冗余存储商品名称和价格?Q2:`app_id` 字段在单商户模式下有什么作用?Q3:导入 SQL 报错 "Character set 'utf8mb4' is not supported"?Q4:`page` 表的 `page_data` 字段为什么是 JSON?Q5:导入后表数据为空怎么办?十二、实践练习练习1:数据库初始化验证练习2:设计一张新表练习3:编写关联查询练习4:SQL 查询练习十三、总结一、概述数据库设计是任何业务系统最底层的基础设施,电商系统尤甚——商品、订单、用户、营销、物流等业务域高度耦合,一个表结构设计不当就可能引发连锁问题。本文以开源电商项目wind Shop为蓝本,从零拆解一套生产级电商数据库的设计思路、表结构细节、索引策略以及初始化流程,帮助读者掌握企业级数据建模方法论。二、学习目标与前置知识完成本文学习后,你将能够:理解 wind Shop 数据库的整体架构与表命名规范掌握商品、订单、用户、店铺等核心业务域的表结构与字段含义理解表之间的关联关系以及多租户隔离机制掌握 MyBatis-Plus 全局配置(逻辑删除、表前缀、自动填充)独立完成数据库初始化与验证,理解索引设计策略前置知识要求:了解关系型数据库基本概念(表、主键、外键、索引)、SQL 基本语法(CREATE TABLE、SELECT、JOIN),并已完成 MySQL 环境安装。三、数据库选型与字符集配置3.1 选型配置总览配置项值说明