chore: 增加数据库说明文档

This commit is contained in:
2025-11-19 18:24:10 +08:00
parent 7ad78f1ee6
commit 9906b8eba1
6 changed files with 27364 additions and 0 deletions

252
docs/db/README_v1.0.md Normal file
View File

@@ -0,0 +1,252 @@
# 电商系统数据库初始化说明
## 概述
本文档描述了电商系统的数据库结构初始化脚本 `init.sql`。该脚本包含了280个数据表的创建语句涵盖了完整的电商业务功能模块。
## 系统架构
- **数据库引擎**: MySQL 8.0+
- **字符集**: utf8
- **行格式**: DYNAMIC
- **默认字段**: 所有表都包含标准的创建时间、修改时间等字段
## 主要功能模块
### 1. 插件系统 (Addons)
- `lucky_addon` - 插件表:存储系统插件的基本信息
- `lucky_addon_quick` - 快速插件表:存储快速插件套餐信息
### 2. 广告系统 (Advertisement)
- `lucky_adv` - 广告表:存储广告内容和配置
- `lucky_adv_position` - 广告位表:管理广告位置和规格
### 3. 媒体管理 (Media)
- `lucky_album` - 相册表:管理图片相册分类
- `lucky_album_pic` - 相册图片表:存储图片文件信息
### 4. 地区管理 (Area)
- `lucky_area` - 地址表:存储省市区县等行政区划数据
### 5. 内容管理 (Content)
- `lucky_article` - 文章表:存储文章内容
- `lucky_article_category` - 文章分类表:管理文章分类
### 6. 盲盒系统 (Blind Box)
- `lucky_blindbox` - 盲盒表:盲盒活动配置
- `lucky_blindbox_category` - 盲盒分类表
- `lucky_blindbox_goods` - 盲盒商品表:盲盒内商品配置
- `lucky_blindbox_member_group` - 盲盒参与组表
- `lucky_blindbox_order` - 盲盒订单表
### 7. 收银系统 (Cashier)
- `lucky_cashier_auth` - 收银权限表
- `lucky_cashier_auth_group` - 收银权限组表
- `lucky_cashier_pendorder` - 本地服务挂单表
- `lucky_cashier_pendorder_goods` - 挂单订单项表
- `lucky_change_shifts_record` - 收银台交接班记录
### 8. 系统配置 (System)
- `lucky_config` - 系统配置表:存储各种系统配置参数
- `lucky_document` - 系统文档表:存储配置性文档
- `lucky_cron` - 计划任务表:定时任务配置
- `lucky_cron_log` - 任务执行日志表
### 9. 自定义页面 (DIY)
- `lucky_diy_template` - 自定义模板页面类型表
- `lucky_diy_template_category` - 自定义模板分类表
- `lucky_diy_template_goods` - 自定义模板组表
- `lucky_diy_template_goods_item` - 模板组页面表
- `lucky_diy_theme` - 自定义模板主题风格配色表
- `lucky_diy_view_util` - 自定义模板组件表
### 10. 物流配送 (Express)
- `lucky_express_company` - 店铺物流公司表
- `lucky_express_company_template` - 系统物流公司表
- `lucky_express_deliver` - 配送员表
- `lucky_express_delivery_package` - 订单物流信息表
- `lucky_express_electronicsheet` - 电子面单表
- `lucky_express_template` - 运费模板表
- `lucky_express_template_free_shipping` - 运费模板免邮地区表
- `lucky_express_template_item` - 运费模板细节表
### 11. 分销系统 (Distribution)
- `lucky_fenxiao` - 分销商表
- `lucky_fenxiao_account` - 分销商流水表
- `lucky_fenxiao_apply` - 分销商申请表
- `lucky_fenxiao_goods` - 分销商品表
- `lucky_fenxiao_goods_collect` - 分销商关注商品表
- `lucky_fenxiao_goods_sku` - 分销商品SKU表
- `lucky_fenxiao_level` - 分销等级配置表
- `lucky_fenxiao_order` - 分销订单表
- `lucky_fenxiao_withdraw` - 分销商提现表
### 12. 礼品卡系统 (Gift Card)
- `lucky_giftcard` - 礼品卡表
- `lucky_giftcard_card` - 礼品卡获取记录表
- `lucky_giftcard_card_blessing` - 礼品卡祝福语表
- `lucky_giftcard_card_goods` - 礼品卡商品项表
### 13. 表单系统 (Form)
- `lucky_form` - 表单配置表
- `lucky_form_data` - 表单数据表
### 14. 文件管理 (Files)
- `lucky_files` - 文件管理表
## 核心字段说明
### 通用字段
- `site_id` - 站点ID用于多站点支持
- `create_time` - 创建时间Unix时间戳格式
- `update_time` - 修改时间Unix时间戳格式
- `status` - 状态通常0=关闭1=开启
### 订单相关字段
- `order_id` - 订单ID
- `order_no` - 订单编号
- `member_id` - 会员ID
- `goods_id` - 商品ID
- `sku_id` - 商品SKU ID
- `price` - 价格
- `num` - 数量
### 财务字段
- `money` - 金额
- `balance` - 余额
- `commission` - 佣金
- `rate` - 费率
## 安装说明
### 1. 环境要求
- MySQL 8.0+
- PHP 7.4+
- 存储空间建议至少2GB
### 2. 安装步骤
```bash
# 1. 创建数据库
mysql -u root -p
CREATE DATABASE shop_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 2. 导入初始化脚本
mysql -u root -p shop_database < init.sql
# 3. 验证安装
mysql -u root -p shop_database -e "SHOW TABLES;"
```
### 3. 权限配置
```sql
-- 创建数据库用户
CREATE USER 'shop_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, DROP ON shop_database.* TO 'shop_user'@'localhost';
FLUSH PRIVILEGES;
```
## 索引优化
脚本中已包含必要的索引定义,主要索引类型:
- **主键索引**:所有表的 `id` 字段
- **唯一索引**:用于保证数据唯一性
- **复合索引**:用于优化查询性能
- **普通索引**:用于加速常用查询
## 性能建议
### 1. 数据库优化
```sql
-- 启用查询缓存
SET GLOBAL query_cache_type = ON;
SET GLOBAL query_cache_size = 268435456;
-- 优化InnoDB设置
SET GLOBAL innodb_buffer_pool_size = 1073741824;
SET GLOBAL innodb_log_file_size = 268435456;
```
### 2. 分区策略
对于大数据量表,建议按时间进行分区:
```sql
-- 示例:订单表按月分区
ALTER TABLE lucky_order PARTITION BY RANGE (YEAR(create_time)*100 + MONTH(create_time)) (
PARTITION p202401 VALUES LESS THAN (202402),
PARTITION p202402 VALUES LESS THAN (202403),
-- 继续添加更多分区...
);
```
## 备份策略
### 1. 全量备份
```bash
mysqldump -u root -p --single-transaction --routines --triggers shop_database > backup_full.sql
```
### 2. 增量备份
```bash
mysqldump -u root -p --single-transaction --where="create_time > UNIX_TIMESTAMP('2024-01-01')" shop_database > backup_incremental.sql
```
## 数据迁移
### 从旧版本迁移
1. 备份现有数据
2. 执行新的 `init.sql`
3. 运行数据迁移脚本
4. 验证数据完整性
## 监控维护
### 1. 定期维护
```sql
-- 优化表
OPTIMIZE TABLE lucky_order;
-- 分析表
ANALYZE TABLE lucky_member;
-- 检查表
CHECK TABLE lucky_goods;
```
### 2. 监控指标
- 表空间使用率
- 查询执行时间
- 索引使用情况
- 连接数和锁等待
## 安全建议
1. **访问控制**限制数据库访问IP
2. **密码策略**:使用强密码
3. **定期更新**:保持数据库版本更新
4. **数据加密**:敏感数据加密存储
5. **日志审计**:开启数据库审计日志
## 常见问题
### Q: 初始化失败怎么办?
A: 检查MySQL版本权限确保有足够的空间和权限。
### Q: 如何添加新的站点?
A: 在相关表中插入新的 `site_id` 记录。
### Q: 数据库升级需要注意什么?
A: 务必先备份数据,测试升级脚本。
## 技术支持
如遇到问题,请提供以下信息:
- MySQL版本
- 错误日志
- 相关配置信息
- 重现步骤
---
**注意**:本数据库结构包含完整的电商功能模块,建议根据实际业务需求选择使用相应的表结构。