Files
ycc-proxy-server/deploy/sql/add_agent_short_link_table.sql
2025-12-02 19:57:10 +08:00

47 lines
2.8 KiB
SQL
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.

-- ============================================
-- 代理短链表
-- 说明:存储推广链接和邀请链接的短链映射关系
--
-- 功能说明:
-- 1. 支持两种类型promotion推广报告和 invite邀请好友
-- 2. 为每个链接生成一个短链标识6位随机字符串
-- 3. 短链格式https://推广域名/s/{short_code}
-- 4. 短链重定向到前端传入的target_path
--
-- 执行步骤:
-- 1. 执行此 SQL 创建表
-- 2. 使用 goctl 生成 Modelagent_short_link -> AgentShortLinkModel
-- 3. 在 servicecontext.go 中添加 AgentShortLinkModel
-- ============================================
CREATE TABLE `agent_short_link` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`type` tinyint NOT NULL COMMENT '类型1=推广报告(promotion)2=邀请好友(invite)',
`link_id` bigint DEFAULT NULL COMMENT '推广链接ID关联agent_link表仅推广报告类型使用',
`invite_code_id` bigint DEFAULT NULL COMMENT '邀请码ID关联agent_invite_code表仅邀请好友类型使用',
`link_identifier` varchar(200) DEFAULT NULL COMMENT '推广链接标识(加密,仅推广报告类型使用)',
`invite_code` varchar(50) DEFAULT NULL COMMENT '邀请码(仅邀请好友类型使用)',
`short_code` varchar(20) NOT NULL COMMENT '短链标识6位随机字符串',
`target_path` varchar(500) NOT NULL COMMENT '目标地址(前端传入,如:/agent/promotionInquire/xxx 或 /register?invite_code=xxx',
`promotion_domain` varchar(200) NOT NULL COMMENT '推广域名(生成短链时使用的域名)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`del_state` tinyint NOT NULL DEFAULT 0 COMMENT '删除状态0=未删除1=已删除',
`version` bigint NOT NULL DEFAULT 0 COMMENT '版本号(乐观锁)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_short_code` (`short_code`, `del_state`) COMMENT '短链标识唯一索引',
UNIQUE KEY `uk_link_id_type` (
`link_id`,
`type`,
`del_state`
) COMMENT '同一推广链接同一类型只能有一个有效短链',
UNIQUE KEY `uk_invite_code_id_type` (
`invite_code_id`,
`type`,
`del_state`
) COMMENT '同一邀请码同一类型只能有一个有效短链',
KEY `idx_link_identifier` (`link_identifier`) COMMENT '推广链接标识索引',
KEY `idx_invite_code` (`invite_code`) COMMENT '邀请码索引',
KEY `idx_type` (`type`) COMMENT '类型索引',
KEY `idx_create_time` (`create_time`) COMMENT '创建时间索引'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代理短链表';