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 选型配置总览配置项值说明

相关新闻

为什么选择sonar-gitlab-plugin?10个理由让你的代码质量检测效率提升300%

为什么选择sonar-gitlab-plugin?10个理由让你的代码质量检测效率提升300%

为什么选择sonar-gitlab-plugin?10个理由让你的代码质量检测效率提升300% 【免费下载链接】sonar-gitlab-plugin Add to each commit GitLab in a global commentary on the new anomalies added by this commit and add comment lines of modified files 项目地址…

2026/8/2 4:20:51 阅读更多 →
st终端模拟器入门指南:10分钟快速上手suckless风格的现代终端

st终端模拟器入门指南:10分钟快速上手suckless风格的现代终端

st终端模拟器入门指南:10分钟快速上手suckless风格的现代终端 【免费下载链接】st snazzy terminal (suckless beautiful) 项目地址: https://gitcode.com/gh_mirrors/st2/st 想要体验极简、高效且美观的终端环境吗?st终端模拟器正是你寻找的完美…

2026/8/2 8:29:09 阅读更多 →
「实战应用」如何用图表控件LightningChart创建2D气泡图

「实战应用」如何用图表控件LightningChart创建2D气泡图

LightningChart JS是Web上性能特高的图表库,具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画,常用于贸易,工程,航…

2026/8/2 8:46:57 阅读更多 →

最新新闻

面对完全陌生的线上应用,我靠这套“找日志“方法论,10 分钟摸清家底

面对完全陌生的线上应用,我靠这套“找日志“方法论,10 分钟摸清家底

为什么"陌生应用排障"这么让人崩溃 我以前遇到一些项目,发现他们遇到对自己的应用了解很少: 点开服务器一看,进程名看不懂,目录结构乱七八糟,日志文件几十个,不知道该看哪个。 然后是乱。上来就 …

2026/8/3 1:18:27 阅读更多 →
Android面试题---ListView

Android面试题---ListView

1. ListView 如何定位到指定位置在 Android 开发中,我们经常需要将 ListView 滚动到特定位置,例如用户点击某个按钮后跳转到列表的指定项。ListView 提供了多种方法来实现精确定位。1.1 核心定位方法ListView 最常用的定位方法是 setSelection(int posit…

2026/8/3 1:18:27 阅读更多 →
220V与380V电压区别解析:从单相电到三相电的工业应用

220V与380V电压区别解析:从单相电到三相电的工业应用

1. 项目概述:从日常插座到工业动力聊起电,大家最熟悉的莫过于家里墙上那个220V的插座,给手机充电、开空调、烧水都靠它。但如果你走进一个工厂车间,或者看看大型商场的配电箱,经常会听到“380V”这个电压等级。同样是电…

2026/8/3 1:18:27 阅读更多 →
行为树与py_trees:从状态机到模块化AI决策的Python实践

行为树与py_trees:从状态机到模块化AI决策的Python实践

1. 从状态机到行为树:为什么我们需要更优雅的决策逻辑如果你做过游戏AI、机器人控制或者任何需要复杂决策逻辑的系统,大概率都跟状态机打过交道。状态机(FSM)是个好东西,直观、简单,画几个圈圈和箭头就能把…

2026/8/3 1:17:27 阅读更多 →
Pandas DataFrame.append()弃用:性能陷阱与高效数据合并方案详解

Pandas DataFrame.append()弃用:性能陷阱与高效数据合并方案详解

1. 问题缘起:一个“过时”的错误如何成为数据处理的拦路虎 如果你最近在升级了pandas版本后,运行一段曾经完美工作的数据处理脚本,突然遇到了 AttributeError: ‘DataFrame‘ object has no attribute ‘append‘ 这个报错,先别…

2026/8/3 1:17:27 阅读更多 →
Claude Cowork重塑AI办公:从Copilot到协同工作的范式转移

Claude Cowork重塑AI办公:从Copilot到协同工作的范式转移

1. 从“Copilot”到“Cowork”:AI办公的范式转移最近,如果你关注AI和办公软件,一定被“Claude杀入Office全家桶”这样的标题刷屏了。这背后,是Anthropic公司推出的Claude for Microsoft 365(内部代号“Cowork”&#x…

2026/8/3 1:17:27 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →