Files
shop-platform/docs/db/README_v1.0.md

252 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 电商系统数据库初始化说明
## 概述
本文档描述了电商系统的数据库结构初始化脚本 `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版本
- 错误日志
- 相关配置信息
- 重现步骤
---
**注意**:本数据库结构包含完整的电商功能模块,建议根据实际业务需求选择使用相应的表结构。