252 lines
7.3 KiB
Markdown
252 lines
7.3 KiB
Markdown
# 电商系统数据库初始化说明
|
||
|
||
## 概述
|
||
|
||
本文档描述了电商系统的数据库结构初始化脚本 `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版本
|
||
- 错误日志
|
||
- 相关配置信息
|
||
- 重现步骤
|
||
|
||
---
|
||
|
||
**注意**:本数据库结构包含完整的电商功能模块,建议根据实际业务需求选择使用相应的表结构。 |