2.5 KiB
2.5 KiB
给当前Golang系统 增加 postgresql 的支持,可以切换mysql或者postgresql(通过config yaml配置 主数据源)。 然后将以下移动端用户信息表给我改成postgresql的建表格式(加上COMMENT信息),并增加对应的代码(Entity、Service、Mapper、Controller) 要求 系统要兼容mysql/postgresql 切换使用,目前只有两个表t_user、t_platform_user,你需要帮我在docs/ 下建立 sql文件夹,储存 mysql以及postgresql的建表语句。
CREATE TABLE t_user (
id BIGSERIAL PRIMARY KEY, -- 全局唯一用户ID(自增)
username VARCHAR(50) COMMENT '用户名(可选,后台管理用)',
nickname VARCHAR(100) COMMENT '用户昵称(各平台统一)',
avatar_url VARCHAR(500) COMMENT '用户头像URL',
phone VARCHAR(20) UNIQUE COMMENT '手机号(脱敏存储,如138****1234)',
gender TINYINT COMMENT '性别:0-未知,1-男,2-女',
status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-正常',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT DEFAULT 0 COMMENT '软删除:0-未删,1-已删'
);
COMMENT ON TABLE t_user IS '用户基础信息表';
CREATE TABLE t_platform_user (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL COMMENT '关联t_user.id',
platform_type TINYINT NOT NULL COMMENT '平台类型:1-微信小程序,2-抖音小程序,3-支付宝小程序',
platform_openid VARCHAR(100) NOT NULL COMMENT '平台唯一标识(微信openid/抖音open_id)',
platform_unionid VARCHAR(100) COMMENT '平台统一标识(微信unionid,多小程序互通用)',
platform_session_key VARCHAR(100) COMMENT '平台会话密钥(微信session_key,加密存储)',
platform_extra JSONB COMMENT '平台扩展字段(如抖音的user_name、微信的city等)',
last_login_time TIMESTAMP COMMENT '最后登录时间',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
-- 联合唯一索引:同一平台的openid不能重复
UNIQUE (platform_type, platform_openid),
-- 外键关联用户表
CONSTRAINT fk_platform_user_user_id FOREIGN KEY (user_id) REFERENCES t_user(id) ON DELETE CASCADE
);
COMMENT ON TABLE t_platform_user IS '平台用户关联表(微信/抖音小程序用户信息)';