This commit is contained in:
2026-10-26 22:01:41 +08:00
parent fd5e1c5606
commit 6f13816bcf
3 changed files with 63 additions and 6 deletions
+39
View File
@@ -0,0 +1,39 @@
-- 小程序管理 & 小程序用户建表脚本(mini_ / users 前缀,与后台 RBAC 物理隔离)。
-- 执行顺序:先建表,再建索引(GORM 已含唯一/普通索引定义,此处显式列出便于审阅)。
-- 表结构与 internal/model/miniapp.go、internal/model/user.go 保持一致。
-- 被后台纳管的小程序配置,AppID 全局唯一。
-- DeletedAt 为 GORM 软删除字段,已建普通索引以支持软删除过滤。
CREATE TABLE IF NOT EXISTS `mini_programs` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(128) NOT NULL,
`description` VARCHAR(512) DEFAULT '',
`app_id` VARCHAR(64) NOT NULL,
`app_secret` VARCHAR(128) NOT NULL,
`status` TINYINT NOT NULL DEFAULT 1,
`ext` TEXT,
`created_at` DATETIME(3) NULL,
`updated_at` DATETIME(3) NULL,
`deleted_at` DATETIME(3) NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mini_programs_app_id` (`app_id`),
KEY `idx_mini_programs_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 小程序端用户。mini_id 关联被纳管小程序(mini_programs.id),
-- 与 open_id 共同唯一标识一个用户;查询统一按 (mini_id, openid) 索引过滤。
-- union_id 建普通索引便于跨小程序去重/聚合。
CREATE TABLE IF NOT EXISTS `users` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`mini_id` BIGINT UNSIGNED NOT NULL,
`openid` VARCHAR(64) NOT NULL,
`union_id` VARCHAR(64) DEFAULT '',
`nickname` VARCHAR(128) DEFAULT '',
`avatar` VARCHAR(512) DEFAULT '',
`status` TINYINT NOT NULL DEFAULT 1,
`created_at` DATETIME(3) NULL,
`updated_at` DATETIME(3) NULL,
PRIMARY KEY (`id`),
KEY `idx_users_mini_openid` (`mini_id`, `openid`),
KEY `idx_users_union_id` (`union_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;