temp
This commit is contained in:
320
deploy/sql/README_表结构修改说明.md
Normal file
320
deploy/sql/README_表结构修改说明.md
Normal file
@@ -0,0 +1,320 @@
|
||||
# 表结构修改说明
|
||||
|
||||
本文档说明系统重构需要的所有表结构修改,包括:
|
||||
1. UUID迁移(将所有bigint类型的ID改为CHAR(36)类型的UUID)
|
||||
2. 用户系统重构(删除UserTemp表,优化UserAuth表)
|
||||
|
||||
## 一、UUID迁移
|
||||
|
||||
### 1.1 概述
|
||||
|
||||
将所有表的主键ID从`bigint`类型改为`CHAR(36)`类型的UUID,同时将所有外键关联字段也改为UUID类型。
|
||||
|
||||
**注意**:开发环境使用简化版脚本(`uuid_migration_simple.sql`),直接修改表结构,不保留旧数据。
|
||||
|
||||
### 1.2 涉及的表
|
||||
|
||||
**核心业务表**:
|
||||
- `user` - 用户表
|
||||
- `agent` - 代理表
|
||||
- `product` - 产品表
|
||||
- `order` - 订单表
|
||||
- `query` - 查询报告表
|
||||
- `user_auth` - 用户认证表
|
||||
|
||||
**代理相关表**:
|
||||
- `agent_commission` - 代理佣金表
|
||||
- `agent_invite_code` - 代理邀请码表
|
||||
- `agent_link` - 代理链接表
|
||||
- `agent_order` - 代理订单表
|
||||
- `agent_wallet` - 代理钱包表
|
||||
- `agent_withdrawal` - 代理提现表
|
||||
- `agent_withdrawal_tax` - 代理提现税费表
|
||||
- `agent_rebate` - 代理返利表
|
||||
- `agent_relation` - 代理关系表
|
||||
- `agent_upgrade` - 代理升级表
|
||||
- `agent_real_name` - 代理实名表
|
||||
- `agent_config` - 代理配置表
|
||||
- `agent_product_config` - 代理产品配置表
|
||||
- `agent_short_link` - 代理短链表
|
||||
- `agent_invite_code_usage` - 邀请码使用记录表
|
||||
- `agent_freeze_task` - 代理冻结任务表
|
||||
|
||||
**订单相关表**:
|
||||
- `order_refund` - 订单退款表
|
||||
|
||||
**查询相关表**:
|
||||
- `query_cleanup_log` - 查询清理日志表
|
||||
- `query_cleanup_detail` - 查询清理详情表
|
||||
- `query_cleanup_config` - 查询清理配置表
|
||||
|
||||
**产品相关表**:
|
||||
- `product_feature` - 产品功能表
|
||||
- `feature` - 功能表
|
||||
|
||||
**其他表**:
|
||||
- `authorization_document` - 授权书表
|
||||
- `global_notifications` - 全局通知表
|
||||
|
||||
**管理后台表**:
|
||||
- `admin_user` - 管理员用户表
|
||||
- `admin_role` - 管理员角色表
|
||||
- `admin_menu` - 管理员菜单表
|
||||
- `admin_api` - 管理员API表
|
||||
- `admin_dict_type` - 字典类型表
|
||||
- `admin_dict_data` - 字典数据表
|
||||
- `admin_user_role` - 管理员用户角色关联表
|
||||
- `admin_role_menu` - 管理员角色菜单关联表
|
||||
- `admin_role_api` - 管理员角色API关联表
|
||||
|
||||
### 1.3 修改内容
|
||||
|
||||
**主键字段**:
|
||||
- 所有表的`id`字段:`bigint` → `CHAR(36)`
|
||||
- 移除`AUTO_INCREMENT`属性
|
||||
- 插入时使用`UUID()`函数或应用层生成UUID
|
||||
|
||||
**外键字段**(软关联):
|
||||
- `user_id`:`bigint` → `CHAR(36)`
|
||||
- `agent_id`:`bigint` → `CHAR(36)`
|
||||
- `order_id`:`bigint` → `CHAR(36)`
|
||||
- `product_id`:`bigint` → `CHAR(36)`
|
||||
- `invite_code_id`:`bigint` → `CHAR(36)`
|
||||
- `link_id`:`bigint` → `CHAR(36)`
|
||||
- `commission_id`:`bigint` → `CHAR(36)`
|
||||
- `wallet_id`:`bigint` → `CHAR(36)`
|
||||
- `withdrawal_id`:`bigint` → `CHAR(36)`
|
||||
- `parent_agent_id`:`bigint` → `CHAR(36)`
|
||||
- `team_leader_id`:`bigint` → `CHAR(36)`
|
||||
- `cleanup_log_id`:`bigint` → `CHAR(36)`
|
||||
- `query_id`:`bigint` → `CHAR(36)`
|
||||
- `feature_id`:`bigint` → `CHAR(36)`
|
||||
- `parent_id`(菜单):`bigint` → `CHAR(36)`
|
||||
- `dict_type_id`:`bigint` → `CHAR(36)`
|
||||
- `role_id`:`bigint` → `CHAR(36)`
|
||||
- `menu_id`:`bigint` → `CHAR(36)`
|
||||
- `api_id`:`bigint` → `CHAR(36)`
|
||||
- `used_user_id`:`bigint` → `CHAR(36)`
|
||||
- `used_agent_id`:`bigint` → `CHAR(36)`
|
||||
|
||||
### 1.4 执行脚本
|
||||
|
||||
**开发环境**:执行文件 `uuid_migration_simple.sql`
|
||||
- 直接修改表结构,不保留旧数据
|
||||
- 适用于开发环境,没有重要数据
|
||||
|
||||
**生产环境**:执行文件 `uuid_migration.sql`
|
||||
- 完整的迁移流程,保留旧数据以便回滚
|
||||
- 需要分阶段执行,包含数据迁移和验证
|
||||
|
||||
**开发环境执行步骤**:
|
||||
1. 直接执行 `uuid_migration_simple.sql`
|
||||
2. 所有表的主键和外键字段直接改为CHAR(36)
|
||||
3. 插入新记录时,在应用层生成UUID
|
||||
|
||||
**注意事项**:
|
||||
- 开发环境脚本直接修改表结构,不保留旧数据
|
||||
- 如果表中有数据,需要先清空数据或手动填充UUID
|
||||
- 代码层面需要同步修改所有ID字段类型(int64 → string)
|
||||
|
||||
## 二、用户系统重构
|
||||
|
||||
### 2.1 概述
|
||||
|
||||
删除`UserTemp`表,统一使用`User`表(通过`mobile`字段是否为空区分临时用户和正式用户),优化`UserAuth`表结构。
|
||||
|
||||
### 2.2 涉及的表
|
||||
|
||||
**需要修改的表**:
|
||||
- `user` - 用户表(无需修改结构,只需确保mobile可为空)
|
||||
- `user_auth` - 用户认证表(添加唯一索引)
|
||||
- `user_temp` - 临时用户表(**删除**)
|
||||
|
||||
**需要迁移数据的表**:
|
||||
- `order` - 订单表(更新user_id)
|
||||
- `query` - 查询报告表(更新user_id)
|
||||
|
||||
### 2.3 修改内容
|
||||
|
||||
#### 2.3.1 UserAuth表
|
||||
|
||||
**添加唯一索引**:
|
||||
```sql
|
||||
ALTER TABLE `user_auth`
|
||||
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`);
|
||||
```
|
||||
|
||||
**作用**:
|
||||
- 确保同一个认证方式(auth_type + auth_key)只能绑定一个用户
|
||||
- 防止重复绑定
|
||||
|
||||
#### 2.3.2 UserTemp表
|
||||
|
||||
**删除原因**:
|
||||
- 临时用户可以直接创建User表记录(mobile为空)
|
||||
- 临时用户的认证信息存储在UserAuth表
|
||||
- 通过User.mobile是否为空来区分临时用户和正式用户
|
||||
- 统一使用User表,逻辑更清晰
|
||||
|
||||
**删除步骤**:
|
||||
1. 迁移UserTemp数据到User和UserAuth表
|
||||
2. 更新关联的订单和报告的user_id
|
||||
3. 验证数据完整性
|
||||
4. 删除UserTemp表
|
||||
|
||||
### 2.4 执行脚本
|
||||
|
||||
**开发环境**:执行文件 `user_system_refactor.sql`(已简化)
|
||||
- 直接删除UserTemp表
|
||||
- 添加UserAuth唯一索引
|
||||
|
||||
**生产环境**:如需数据迁移,请参考完整版脚本
|
||||
|
||||
**开发环境执行步骤**:
|
||||
1. 添加UserAuth唯一索引
|
||||
2. 直接删除UserTemp表
|
||||
|
||||
**注意事项**:
|
||||
- 开发环境脚本直接删除UserTemp表,不进行数据迁移
|
||||
- 删除UserTemp表前,确保代码中已移除所有对UserTemp表的引用
|
||||
|
||||
## 三、执行顺序
|
||||
|
||||
### 3.1 推荐执行顺序
|
||||
|
||||
**开发环境**:
|
||||
1. **先执行用户系统重构**(`user_system_refactor.sql`)
|
||||
- 添加UserAuth唯一索引
|
||||
- 删除UserTemp表
|
||||
|
||||
2. **再执行UUID迁移**(`uuid_migration_simple.sql`)
|
||||
- 直接修改所有表结构
|
||||
- 需要同步修改代码
|
||||
|
||||
**生产环境**:
|
||||
1. 先执行用户系统重构(完整版,包含数据迁移)
|
||||
2. 再执行UUID迁移(完整版,包含数据迁移和验证)
|
||||
|
||||
### 3.2 如果先执行UUID迁移
|
||||
|
||||
如果先执行UUID迁移,需要注意:
|
||||
- UserTemp表的ID也会改为UUID
|
||||
- 迁移UserTemp数据时,需要使用UUID映射
|
||||
- 用户系统重构脚本需要相应调整
|
||||
|
||||
## 四、代码修改清单
|
||||
|
||||
### 4.1 UUID迁移需要的代码修改
|
||||
|
||||
**Model层**:
|
||||
- 所有Model的ID字段类型:`int64` → `string`
|
||||
- 所有外键字段类型:`int64` → `string`
|
||||
- 移除`AUTO_INCREMENT`相关逻辑
|
||||
- 插入时生成UUID(使用`uuid.NewString()`)
|
||||
|
||||
**Service层**:
|
||||
- 所有使用ID的地方改为UUID
|
||||
- 查询条件改为UUID
|
||||
- 关联查询改为UUID
|
||||
|
||||
**API层**:
|
||||
- 请求参数中的ID改为UUID
|
||||
- 响应数据中的ID改为UUID
|
||||
|
||||
**数据库操作**:
|
||||
- 插入操作:使用`uuid.NewString()`生成UUID
|
||||
- 查询操作:使用UUID字符串查询
|
||||
- 更新操作:使用UUID字符串更新
|
||||
|
||||
### 4.2 用户系统重构需要的代码修改
|
||||
|
||||
**删除UserTemp相关代码**:
|
||||
- 删除`UserTempModel`
|
||||
- 删除所有使用`UserTemp`的代码
|
||||
- 删除临时用户创建逻辑中的UserTemp相关代码
|
||||
|
||||
**修改用户创建逻辑**:
|
||||
- 临时用户:直接创建User记录(mobile为空)
|
||||
- 创建UserAuth记录(auth_type + auth_key)
|
||||
|
||||
**修改用户查询逻辑**:
|
||||
- 通过UserAuth表查询用户
|
||||
- 通过User.mobile是否为空判断用户类型
|
||||
|
||||
**修改账号合并逻辑**:
|
||||
- 绑定手机号时,检查手机号是否已存在
|
||||
- 如果存在,合并账号(迁移数据)
|
||||
- 如果不存在,更新User.mobile
|
||||
|
||||
## 五、验证清单
|
||||
|
||||
### 5.1 UUID迁移验证
|
||||
|
||||
- [ ] 所有表的主键已改为CHAR(36)
|
||||
- [ ] 所有外键字段已改为CHAR(36)
|
||||
- [ ] 插入新记录时自动生成UUID
|
||||
- [ ] 查询操作使用UUID正常
|
||||
- [ ] 关联查询使用UUID正常
|
||||
- [ ] 索引和约束已更新
|
||||
- [ ] 数据完整性验证通过
|
||||
|
||||
### 5.2 用户系统重构验证
|
||||
|
||||
- [ ] UserAuth表有唯一索引`uk_auth_type_key`
|
||||
- [ ] UserTemp表数据已迁移(如果存在)
|
||||
- [ ] 订单和报告的user_id已更新
|
||||
- [ ] UserTemp表已删除(如果存在)
|
||||
- [ ] 临时用户创建逻辑使用User表
|
||||
- [ ] 账号合并逻辑正常工作
|
||||
- [ ] 数据完整性验证通过
|
||||
|
||||
## 六、回滚方案
|
||||
|
||||
### 6.1 UUID迁移回滚
|
||||
|
||||
如果UUID迁移出现问题,可以:
|
||||
1. 保留原ID字段(迁移脚本中已保留)
|
||||
2. 恢复主键为原ID字段
|
||||
3. 删除UUID字段
|
||||
4. 恢复代码使用int64类型
|
||||
|
||||
### 6.2 用户系统重构回滚
|
||||
|
||||
如果用户系统重构出现问题,可以:
|
||||
1. 恢复UserTemp表(从备份)
|
||||
2. 恢复订单和报告的user_id
|
||||
3. 恢复代码使用UserTemp表
|
||||
|
||||
## 七、常见问题
|
||||
|
||||
### 7.1 UUID性能问题
|
||||
|
||||
**问题**:UUID作为主键可能影响性能
|
||||
|
||||
**解答**:
|
||||
- UUID是字符串类型,索引效率略低于bigint
|
||||
- 但UUID的优势是全局唯一,适合分布式系统
|
||||
- 如果性能问题严重,可以考虑使用BINARY(16)存储UUID(需要转换)
|
||||
|
||||
### 7.2 UUID长度问题
|
||||
|
||||
**问题**:CHAR(36)占用空间较大
|
||||
|
||||
**解答**:
|
||||
- UUID标准格式是36字符(包含连字符)
|
||||
- 如果空间敏感,可以使用BINARY(16)存储(需要转换函数)
|
||||
- 当前使用CHAR(36)便于调试和查看
|
||||
|
||||
### 7.3 UserTemp数据迁移问题
|
||||
|
||||
**问题**:如何确保UserTemp数据正确迁移?
|
||||
|
||||
**解答**:
|
||||
- 通过auth_type和auth_key匹配UserAuth记录
|
||||
- 建立UserTemp.id到User.id的映射关系
|
||||
- 迁移后验证数据完整性
|
||||
- 保留UserTemp表一段时间,确认无误后再删除
|
||||
|
||||
## 八、联系信息
|
||||
|
||||
如有问题,请联系开发团队。
|
||||
@@ -1,20 +1,62 @@
|
||||
-- ============================================
|
||||
-- 表结构模板(UUID版本)
|
||||
-- ============================================
|
||||
-- 注意:系统已迁移到UUID主键,新表请使用此模板
|
||||
-- ============================================
|
||||
|
||||
CREATE TABLE `表名` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||
`id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||||
`del_state` tinyint NOT NULL DEFAULT '0',
|
||||
`version` bigint NOT NULL DEFAULT '0' COMMENT '版本号',
|
||||
|
||||
/* 业务字段开始 */
|
||||
`字段1` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
|
||||
|
||||
/* 业务字段开始 */
|
||||
|
||||
`字段1` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
|
||||
`字段2` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
|
||||
/* 关联字段 - 软关联 */
|
||||
`关联表id` bigint [NOT NULL] [DEFAULT '0'] COMMENT '关联到XX表的id',
|
||||
/* 关联字段 - 软关联(使用UUID) */
|
||||
`关联表id` CHAR(36) [NOT NULL] [DEFAULT NULL] COMMENT '关联到XX表的UUID',
|
||||
/* 业务字段结束 */
|
||||
|
||||
PRIMARY KEY (`id`),
|
||||
/* 索引定义 */
|
||||
UNIQUE KEY `索引名称` (`字段名`),
|
||||
KEY `idx_关联字段` (`关联表id`) COMMENT '优化关联查询'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表说明';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表说明';
|
||||
|
||||
-- ============================================
|
||||
-- UUID生成说明
|
||||
-- ============================================
|
||||
-- 1. 应用层生成:使用Go的uuid.NewString()生成UUID
|
||||
-- 示例:id := uuid.NewString()
|
||||
-- 2. 数据库层生成:使用MySQL的UUID()函数(不推荐,性能较差)
|
||||
-- 示例:INSERT INTO table (id, ...) VALUES (UUID(), ...)
|
||||
-- 3. 推荐方式:在应用层生成UUID,然后插入数据库
|
||||
-- ============================================
|
||||
|
||||
-- ============================================
|
||||
-- 旧版本模板(bigint主键,已废弃)
|
||||
-- ============================================
|
||||
-- CREATE TABLE `表名` (
|
||||
-- `id` bigint NOT NULL AUTO_INCREMENT,
|
||||
-- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
-- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
-- `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||||
-- `del_state` tinyint NOT NULL DEFAULT '0',
|
||||
-- `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号',
|
||||
--
|
||||
-- /* 业务字段开始 */
|
||||
-- `字段1` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
|
||||
-- `字段2` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
|
||||
-- /* 关联字段 - 软关联 */
|
||||
-- `关联表id` bigint [NOT NULL] [DEFAULT '0'] COMMENT '关联到XX表的id',
|
||||
-- /* 业务字段结束 */
|
||||
--
|
||||
-- PRIMARY KEY (`id`),
|
||||
-- /* 索引定义 */
|
||||
-- UNIQUE KEY `索引名称` (`字段名`),
|
||||
-- KEY `idx_关联字段` (`关联表id`) COMMENT '优化关联查询'
|
||||
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表说明';
|
||||
-- ============================================
|
||||
44
deploy/sql/user_system_refactor.sql
Normal file
44
deploy/sql/user_system_refactor.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
-- ============================================
|
||||
-- 用户系统重构SQL脚本(简化版 - 开发环境)
|
||||
-- 根据《用户系统重构计划书》执行
|
||||
-- ============================================
|
||||
|
||||
-- ============================================
|
||||
-- 第一部分:UserAuth表唯一索引
|
||||
-- ============================================
|
||||
|
||||
-- 确保user_auth表的(auth_type, auth_key)唯一性
|
||||
-- 如果已存在同名索引,先删除
|
||||
ALTER TABLE `user_auth` DROP INDEX IF EXISTS `uk_auth_type_key`;
|
||||
|
||||
-- 添加唯一索引
|
||||
ALTER TABLE `user_auth`
|
||||
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`) COMMENT '确保同一个认证方式只能绑定一个用户';
|
||||
|
||||
-- ============================================
|
||||
-- 第二部分:删除UserTemp表(开发环境直接删除)
|
||||
-- ============================================
|
||||
|
||||
-- 注意:开发环境没有数据,直接删除表即可
|
||||
-- 如果表不存在,会报错但可以忽略
|
||||
|
||||
DROP TABLE IF EXISTS `user_temp`;
|
||||
|
||||
-- ============================================
|
||||
-- 第三部分:索引优化(可选)
|
||||
-- ============================================
|
||||
|
||||
-- 为user_auth表添加user_id和auth_type的联合索引(如果查询频繁)
|
||||
-- ALTER TABLE `user_auth`
|
||||
-- ADD INDEX `idx_user_id_auth_type` (`user_id`, `auth_type`) COMMENT '优化按用户查询认证类型';
|
||||
|
||||
-- 为user表添加mobile的唯一索引(如果不存在)
|
||||
-- ALTER TABLE `user`
|
||||
-- ADD UNIQUE INDEX `uk_mobile` (`mobile`) COMMENT '确保手机号唯一性';
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. 此脚本适用于开发环境,直接删除UserTemp表
|
||||
-- 2. 如果生产环境有数据,请使用完整版迁移脚本
|
||||
-- 3. 执行后,确保代码中已移除所有对UserTemp表的引用
|
||||
1831
deploy/sql/uuid_migration.sql
Normal file
1831
deploy/sql/uuid_migration.sql
Normal file
File diff suppressed because it is too large
Load Diff
446
deploy/sql/uuid_migration_simple.sql
Normal file
446
deploy/sql/uuid_migration_simple.sql
Normal file
@@ -0,0 +1,446 @@
|
||||
-- ============================================
|
||||
-- UUID迁移脚本(简化版 - 开发环境)
|
||||
-- 将系统中所有bigint类型的ID字段改为CHAR(36)类型的UUID
|
||||
-- 注意:此脚本直接修改表结构,不保留旧数据,适用于开发环境
|
||||
-- ============================================
|
||||
|
||||
-- 注意:user表和product表已经是CHAR(36)类型,跳过修改
|
||||
|
||||
-- ============================================
|
||||
-- 第一部分:修改核心业务表
|
||||
-- ============================================
|
||||
|
||||
-- user表:已经是CHAR(36),跳过
|
||||
-- product表:已经是CHAR(36),跳过
|
||||
|
||||
-- order表:修改主键和外键字段
|
||||
ALTER TABLE `order`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- query表:修改主键和外键字段
|
||||
ALTER TABLE `query`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- user_auth表:修改主键和外键字段(注意:user_id需要关联到user表的UUID)
|
||||
ALTER TABLE `user_auth`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`) COMMENT '确保同一个认证方式只能绑定一个用户';
|
||||
|
||||
-- agent表:修改主键和外键字段
|
||||
ALTER TABLE `agent`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `team_leader_id` CHAR(36) NULL COMMENT '团队首领UUID',
|
||||
MODIFY COLUMN `invite_code_id` CHAR(36) NULL COMMENT '邀请码UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE INDEX `uk_user_id` (`user_id`),
|
||||
ADD INDEX `idx_team_leader_id` (`team_leader_id`),
|
||||
ADD INDEX `idx_invite_code_id` (`invite_code_id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第二部分:修改代理相关表
|
||||
-- ============================================
|
||||
|
||||
-- agent_commission表
|
||||
ALTER TABLE `agent_commission`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- agent_invite_code表
|
||||
ALTER TABLE `agent_invite_code`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `used_user_id` CHAR(36) NULL COMMENT '使用用户UUID',
|
||||
MODIFY COLUMN `used_agent_id` CHAR(36) NULL COMMENT '使用代理UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_used_user_id` (`used_user_id`),
|
||||
ADD INDEX `idx_used_agent_id` (`used_agent_id`);
|
||||
|
||||
-- agent_link表
|
||||
ALTER TABLE `agent_link`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- agent_order表
|
||||
ALTER TABLE `agent_order`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- agent_wallet表
|
||||
ALTER TABLE `agent_wallet`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE INDEX `uk_agent_id` (`agent_id`);
|
||||
|
||||
-- agent_withdrawal表
|
||||
ALTER TABLE `agent_withdrawal`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `wallet_id` CHAR(36) NOT NULL COMMENT '钱包UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_wallet_id` (`wallet_id`);
|
||||
|
||||
-- agent_withdrawal_tax表
|
||||
ALTER TABLE `agent_withdrawal_tax`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `withdrawal_id` CHAR(36) NOT NULL COMMENT '提现UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_withdrawal_id` (`withdrawal_id`);
|
||||
|
||||
-- agent_rebate表
|
||||
ALTER TABLE `agent_rebate`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- agent_relation表
|
||||
ALTER TABLE `agent_relation`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `parent_agent_id` CHAR(36) NULL COMMENT '上级代理UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_parent_agent_id` (`parent_agent_id`);
|
||||
|
||||
-- agent_upgrade表
|
||||
ALTER TABLE `agent_upgrade`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`);
|
||||
|
||||
-- agent_real_name表
|
||||
ALTER TABLE `agent_real_name`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`);
|
||||
|
||||
-- agent_config表
|
||||
ALTER TABLE `agent_config`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- agent_product_config表
|
||||
ALTER TABLE `agent_product_config`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- agent_short_link表
|
||||
ALTER TABLE `agent_short_link`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `invite_code_id` CHAR(36) NULL COMMENT '邀请码UUID',
|
||||
MODIFY COLUMN `link_id` CHAR(36) NULL COMMENT '链接UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_invite_code_id` (`invite_code_id`),
|
||||
ADD INDEX `idx_link_id` (`link_id`);
|
||||
|
||||
-- agent_invite_code_usage表
|
||||
ALTER TABLE `agent_invite_code_usage`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `invite_code_id` CHAR(36) NOT NULL COMMENT '邀请码UUID',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_invite_code_id` (`invite_code_id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`);
|
||||
|
||||
-- agent_freeze_task表
|
||||
ALTER TABLE `agent_freeze_task`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `commission_id` CHAR(36) NOT NULL COMMENT '佣金UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_agent_id` (`agent_id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_commission_id` (`commission_id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第三部分:修改订单相关表
|
||||
-- ============================================
|
||||
|
||||
-- order_refund表
|
||||
ALTER TABLE `order_refund`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第四部分:修改查询相关表
|
||||
-- ============================================
|
||||
|
||||
-- query_cleanup_log表
|
||||
ALTER TABLE `query_cleanup_log`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- query_cleanup_detail表
|
||||
ALTER TABLE `query_cleanup_detail`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `cleanup_log_id` CHAR(36) NOT NULL COMMENT '清理日志UUID',
|
||||
MODIFY COLUMN `query_id` CHAR(36) NOT NULL COMMENT '查询UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_cleanup_log_id` (`cleanup_log_id`),
|
||||
ADD INDEX `idx_query_id` (`query_id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`);
|
||||
|
||||
-- query_cleanup_config表
|
||||
ALTER TABLE `query_cleanup_config`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第五部分:修改产品相关表
|
||||
-- ============================================
|
||||
|
||||
-- product_feature表
|
||||
ALTER TABLE `product_feature`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
|
||||
MODIFY COLUMN `feature_id` CHAR(36) NOT NULL COMMENT '功能UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_product_id` (`product_id`),
|
||||
ADD INDEX `idx_feature_id` (`feature_id`);
|
||||
|
||||
-- feature表
|
||||
ALTER TABLE `feature`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第六部分:修改其他表
|
||||
-- ============================================
|
||||
|
||||
-- authorization_document表
|
||||
ALTER TABLE `authorization_document`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_order_id` (`order_id`);
|
||||
|
||||
-- global_notifications表(注意:原表id是int类型)
|
||||
ALTER TABLE `global_notifications`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- example表
|
||||
ALTER TABLE `example`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `feature_id` CHAR(36) NOT NULL COMMENT '功能UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_feature_id` (`feature_id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第七部分:修改管理后台表
|
||||
-- ============================================
|
||||
|
||||
-- admin_user表
|
||||
ALTER TABLE `admin_user`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- admin_role表
|
||||
ALTER TABLE `admin_role`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- admin_menu表(注意:字段名是pid,不是parent_id)
|
||||
ALTER TABLE `admin_menu`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `pid` CHAR(36) NOT NULL DEFAULT '0' COMMENT '父菜单UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_pid` (`pid`);
|
||||
|
||||
-- admin_api表
|
||||
ALTER TABLE `admin_api`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- admin_dict_type表
|
||||
ALTER TABLE `admin_dict_type`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- admin_dict_data表(注意:没有dict_type_id字段,使用dict_type字符串)
|
||||
-- 此表不需要修改外键字段,因为使用的是dict_type字符串而不是ID
|
||||
|
||||
ALTER TABLE `admin_dict_data`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
-- admin_user_role表
|
||||
ALTER TABLE `admin_user_role`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '用户UUID',
|
||||
MODIFY COLUMN `role_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '角色UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`),
|
||||
ADD INDEX `idx_role_id` (`role_id`);
|
||||
|
||||
-- admin_role_menu表
|
||||
ALTER TABLE `admin_role_menu`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `role_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '角色UUID',
|
||||
MODIFY COLUMN `menu_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '菜单UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_role_id` (`role_id`),
|
||||
ADD INDEX `idx_menu_id` (`menu_id`);
|
||||
|
||||
-- admin_role_api表
|
||||
ALTER TABLE `admin_role_api`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `role_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '角色UUID',
|
||||
MODIFY COLUMN `api_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT 'API UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_role_id` (`role_id`),
|
||||
ADD INDEX `idx_api_id` (`api_id`);
|
||||
|
||||
-- ============================================
|
||||
-- 第八部分:修改推广相关表(新增)
|
||||
-- ============================================
|
||||
|
||||
-- admin_promotion_link表
|
||||
ALTER TABLE `admin_promotion_link`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `admin_user_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '推广者账号UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_admin_user_id` (`admin_user_id`);
|
||||
|
||||
-- admin_promotion_link_stats_history表
|
||||
ALTER TABLE `admin_promotion_link_stats_history`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `link_id` CHAR(36) NOT NULL COMMENT '推广链接UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_link_id` (`link_id`);
|
||||
|
||||
-- admin_promotion_link_stats_total表
|
||||
ALTER TABLE `admin_promotion_link_stats_total`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `link_id` CHAR(36) NOT NULL COMMENT '推广链接UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD INDEX `idx_link_id` (`link_id`);
|
||||
|
||||
-- admin_promotion_order表
|
||||
ALTER TABLE `admin_promotion_order`
|
||||
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
|
||||
MODIFY COLUMN `link_id` CHAR(36) NOT NULL COMMENT '推广链接UUID',
|
||||
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
|
||||
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '下单用户UUID',
|
||||
MODIFY COLUMN `admin_user_id` CHAR(36) NOT NULL COMMENT '推广者账号UUID',
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE INDEX `uk_order_id` (`order_id`) COMMENT '确保每个订单只有一条推广记录',
|
||||
ADD INDEX `idx_link_id` (`link_id`),
|
||||
ADD INDEX `idx_user_id` (`user_id`) COMMENT '优化用户查询',
|
||||
ADD INDEX `idx_admin_user_id` (`admin_user_id`);
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. 此脚本直接修改表结构,不保留旧数据
|
||||
-- 2. user表和product表已经是CHAR(36)类型,已跳过
|
||||
-- 3. 执行后,所有ID字段都是CHAR(36)类型
|
||||
-- 4. 插入新记录时,需要在应用层生成UUID(使用uuid.NewString())
|
||||
-- 5. 如果表中有数据,需要先清空数据或手动填充UUID
|
||||
-- 6. 建议在开发环境先测试,确认无误后再应用到生产环境
|
||||
-- 7. admin_menu表使用pid字段而不是parent_id
|
||||
-- 8. admin_dict_data表使用dict_type字符串字段,不是dict_type_id
|
||||
-- 9. global_notifications表的id原为int类型,现改为CHAR(36)
|
||||
Reference in New Issue
Block a user