229 lines
13 KiB
SQL
229 lines
13 KiB
SQL
-- ----------------------------
|
||
-- App端数据库表结构
|
||
-- ----------------------------
|
||
|
||
-- 1、App端用户信息表
|
||
CREATE TABLE app_user
|
||
(
|
||
user_id BIGINT(20) NOT NULL COMMENT 'App用户ID',
|
||
user_name VARCHAR(30) NOT NULL COMMENT '用户账号',
|
||
nick_name VARCHAR(30) NOT NULL COMMENT '用户昵称',
|
||
phone VARCHAR(11) DEFAULT '' COMMENT '手机号码',
|
||
email VARCHAR(50) DEFAULT '' COMMENT '用户邮箱',
|
||
sex CHAR(1) DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',
|
||
avatar BIGINT(20) COMMENT '头像地址',
|
||
password VARCHAR(100) DEFAULT '' COMMENT '密码',
|
||
status CHAR(1) DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
|
||
del_flag CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||
login_ip VARCHAR(128) DEFAULT '' COMMENT '最后登录IP',
|
||
login_date DATETIME COMMENT '最后登录时间',
|
||
register_time DATETIME COMMENT '注册时间',
|
||
create_by BIGINT(20) DEFAULT NULL COMMENT '创建者',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
update_by BIGINT(20) DEFAULT NULL COMMENT '更新者',
|
||
update_time DATETIME COMMENT '更新时间',
|
||
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||
PRIMARY KEY (user_id)
|
||
) ENGINE = InnoDB COMMENT = 'App端用户信息表';
|
||
|
||
INSERT INTO app_user
|
||
VALUES (1, 'appuser', 'App测试用户 密码admin123', '15888888888', 'appuser@qq.com', '1', NULL,
|
||
'$2a$10$7JB720yubVSOfvVMe6LeNOKgEoXAw7tCxJRET6pVuiDDz/LQ4Gqk.',
|
||
'0', '0', '127.0.0.1', SYSDATE(), SYSDATE(), 1, SYSDATE(), NULL, NULL, 'App端测试用户');
|
||
|
||
-- 2、App端角色信息表
|
||
CREATE TABLE app_role
|
||
(
|
||
role_id BIGINT(20) NOT NULL COMMENT 'App角色ID',
|
||
role_name VARCHAR(30) NOT NULL COMMENT '角色名称',
|
||
role_key VARCHAR(100) NOT NULL COMMENT '角色权限字符串',
|
||
role_sort INT(4) NOT NULL COMMENT '显示顺序',
|
||
status CHAR(1) NOT NULL COMMENT '角色状态(0正常 1停用)',
|
||
del_flag CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||
create_by BIGINT(20) DEFAULT NULL COMMENT '创建者',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
update_by BIGINT(20) DEFAULT NULL COMMENT '更新者',
|
||
update_time DATETIME COMMENT '更新时间',
|
||
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||
PRIMARY KEY (role_id)
|
||
) ENGINE = InnoDB COMMENT = 'App端角色信息表';
|
||
|
||
INSERT INTO app_role
|
||
VALUES (1, 'App普通用户', 'app_user', 1, '0', '0', 1, SYSDATE(), NULL, NULL, 'App端普通用户'),
|
||
(2, 'App VIP用户', 'app_vip', 2, '0', '0', 1, SYSDATE(), NULL, NULL, 'App端VIP用户');
|
||
|
||
-- 3、App端用户和角色关联表
|
||
CREATE TABLE app_user_role
|
||
(
|
||
user_id BIGINT(20) NOT NULL COMMENT 'App用户ID',
|
||
role_id BIGINT(20) NOT NULL COMMENT 'App角色ID',
|
||
PRIMARY KEY (user_id, role_id)
|
||
) ENGINE = InnoDB COMMENT = 'App端用户和角色关联表';
|
||
|
||
INSERT INTO app_user_role
|
||
VALUES ('1', '1');
|
||
|
||
-- 4、App端第三方登录授权表
|
||
CREATE TABLE app_social_auth
|
||
(
|
||
id BIGINT(20) NOT NULL COMMENT '主键',
|
||
user_id BIGINT(20) NOT NULL COMMENT 'App用户ID',
|
||
platform VARCHAR(255) NOT NULL COMMENT '用户来源平台(wechat_mp:微信小程序 wechat_open:微信开放平台 qq:QQ weibo:微博)',
|
||
platform_uid VARCHAR(255) NOT NULL COMMENT '表示平台唯一用户标识',
|
||
open_id VARCHAR(255) DEFAULT NULL COMMENT '微信openid',
|
||
union_id VARCHAR(255) DEFAULT NULL COMMENT '微信unionid',
|
||
access_token VARCHAR(2000) NOT NULL COMMENT '用户的授权令牌',
|
||
expire_in INT DEFAULT NULL COMMENT '用户的授权令牌的有效期',
|
||
refresh_token VARCHAR(255) DEFAULT NULL COMMENT '刷新令牌',
|
||
scope VARCHAR(255) DEFAULT NULL COMMENT '授予的权限',
|
||
create_by BIGINT(20) DEFAULT NULL COMMENT '创建者',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
update_by BIGINT(20) DEFAULT NULL COMMENT '更新者',
|
||
update_time DATETIME COMMENT '更新时间',
|
||
del_flag CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||
PRIMARY KEY (id)
|
||
) ENGINE = InnoDB COMMENT = 'App端第三方登录授权表';
|
||
|
||
-- 5、App端登录日志表
|
||
CREATE TABLE app_login_log
|
||
(
|
||
info_id BIGINT(20) NOT NULL COMMENT '访问ID',
|
||
user_name VARCHAR(50) DEFAULT '' COMMENT '用户账号',
|
||
status CHAR(1) DEFAULT '0' COMMENT '登录状态(0成功 1失败)',
|
||
ipaddr VARCHAR(128) DEFAULT '' COMMENT '登录IP地址',
|
||
login_location VARCHAR(255) DEFAULT '' COMMENT '登录地点',
|
||
browser VARCHAR(50) DEFAULT '' COMMENT '浏览器类型',
|
||
os VARCHAR(50) DEFAULT '' COMMENT '操作系统',
|
||
msg VARCHAR(255) DEFAULT '' COMMENT '提示消息',
|
||
login_time DATETIME COMMENT '访问时间',
|
||
PRIMARY KEY (info_id),
|
||
KEY idx_app_login_log_s (status),
|
||
KEY idx_app_login_log_lt (login_time)
|
||
) ENGINE = InnoDB COMMENT = 'App端登录日志表';
|
||
|
||
-- 6、App端操作日志记录
|
||
CREATE TABLE app_oper_log
|
||
(
|
||
oper_id BIGINT(20) NOT NULL COMMENT '日志主键',
|
||
title VARCHAR(50) DEFAULT '' COMMENT '模块标题',
|
||
business_type INT(2) DEFAULT 0 COMMENT '业务类型(0其它 1新增 2修改 3删除)',
|
||
method VARCHAR(100) DEFAULT '' COMMENT '方法名称',
|
||
request_method VARCHAR(10) DEFAULT '' COMMENT '请求方式',
|
||
oper_name VARCHAR(50) DEFAULT '' COMMENT '操作人员',
|
||
oper_url VARCHAR(255) DEFAULT '' COMMENT '请求URL',
|
||
oper_ip VARCHAR(128) DEFAULT '' COMMENT '主机地址',
|
||
oper_location VARCHAR(255) DEFAULT '' COMMENT '操作地点',
|
||
oper_param VARCHAR(2000) DEFAULT '' COMMENT '请求参数',
|
||
json_result VARCHAR(2000) DEFAULT '' COMMENT '返回参数',
|
||
status INT(1) DEFAULT 0 COMMENT '操作状态(0正常 1异常)',
|
||
error_msg VARCHAR(2000) DEFAULT '' COMMENT '错误消息',
|
||
oper_time DATETIME COMMENT '操作时间',
|
||
cost_time BIGINT(20) DEFAULT 0 COMMENT '消耗时间',
|
||
PRIMARY KEY (oper_id),
|
||
KEY idx_app_oper_log_bt (business_type),
|
||
KEY idx_app_oper_log_s (status),
|
||
KEY idx_app_oper_log_ot (oper_time)
|
||
) ENGINE = InnoDB COMMENT = 'App端操作日志记录';
|
||
|
||
-- 7、App端设备信息表
|
||
CREATE TABLE app_device
|
||
(
|
||
device_id BIGINT(20) NOT NULL COMMENT '设备ID',
|
||
user_id BIGINT(20) NOT NULL COMMENT 'App用户ID',
|
||
device_type VARCHAR(20) NOT NULL COMMENT '设备类型(ios android h5)',
|
||
device_name VARCHAR(100) DEFAULT '' COMMENT '设备名称',
|
||
device_model VARCHAR(100) DEFAULT '' COMMENT '设备型号',
|
||
device_brand VARCHAR(50) DEFAULT '' COMMENT '设备品牌',
|
||
os_version VARCHAR(50) DEFAULT '' COMMENT '操作系统版本',
|
||
app_version VARCHAR(50) DEFAULT '' COMMENT 'App版本',
|
||
push_token VARCHAR(255) DEFAULT '' COMMENT '推送令牌',
|
||
is_active CHAR(1) DEFAULT '1' COMMENT '是否活跃(0否 1是)',
|
||
last_active_time DATETIME COMMENT '最后活跃时间',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
update_time DATETIME COMMENT '更新时间',
|
||
PRIMARY KEY (device_id),
|
||
KEY idx_app_device_user_id (user_id),
|
||
KEY idx_app_device_type (device_type)
|
||
) ENGINE = InnoDB COMMENT = 'App端设备信息表';
|
||
|
||
-- 8、App端消息推送表
|
||
CREATE TABLE app_message
|
||
(
|
||
message_id BIGINT(20) NOT NULL COMMENT '消息ID',
|
||
title VARCHAR(100) NOT NULL COMMENT '消息标题',
|
||
content TEXT COMMENT '消息内容',
|
||
message_type VARCHAR(20) DEFAULT 'system' COMMENT '消息类型(system:系统消息 notice:通知 activity:活动)',
|
||
target_type VARCHAR(20) DEFAULT 'all' COMMENT '推送目标(all:全部用户 user:指定用户 role:指定角色)',
|
||
target_ids VARCHAR(1000) DEFAULT '' COMMENT '目标ID列表(用户ID或角色ID,逗号分隔)',
|
||
send_time DATETIME COMMENT '发送时间',
|
||
status CHAR(1) DEFAULT '0' COMMENT '状态(0待发送 1已发送 2发送失败)',
|
||
create_by BIGINT(20) DEFAULT NULL COMMENT '创建者',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
update_by BIGINT(20) DEFAULT NULL COMMENT '更新者',
|
||
update_time DATETIME COMMENT '更新时间',
|
||
PRIMARY KEY (message_id),
|
||
KEY idx_app_message_type (message_type),
|
||
KEY idx_app_message_status (status)
|
||
) ENGINE = InnoDB COMMENT = 'App端消息推送表';
|
||
|
||
-- 9、App端用户消息读取记录表
|
||
CREATE TABLE app_user_message
|
||
(
|
||
id BIGINT(20) NOT NULL COMMENT '主键',
|
||
user_id BIGINT(20) NOT NULL COMMENT 'App用户ID',
|
||
message_id BIGINT(20) NOT NULL COMMENT '消息ID',
|
||
is_read CHAR(1) DEFAULT '0' COMMENT '是否已读(0未读 1已读)',
|
||
read_time DATETIME COMMENT '读取时间',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
PRIMARY KEY (id),
|
||
KEY idx_app_user_message_user (user_id),
|
||
KEY idx_app_user_message_msg (message_id),
|
||
KEY idx_app_user_message_read (is_read)
|
||
) ENGINE = InnoDB COMMENT = 'App端用户消息读取记录表';
|
||
|
||
-- 10、App版本信息表
|
||
CREATE TABLE app_version
|
||
(
|
||
version_id BIGINT(20) NOT NULL COMMENT '版本ID',
|
||
version_code INT NOT NULL COMMENT '版本号(数字)',
|
||
version_name VARCHAR(20) NOT NULL COMMENT '版本名(如1.0.0)',
|
||
update_content TEXT COMMENT '更新内容',
|
||
download_url VARCHAR(500) NOT NULL COMMENT '下载地址',
|
||
is_force CHAR(1) DEFAULT '0' COMMENT '是否强制更新(0否 1是)',
|
||
platform VARCHAR(10) DEFAULT 'android' COMMENT '平台(android、ios)',
|
||
create_time DATETIME COMMENT '创建时间',
|
||
PRIMARY KEY (version_id)
|
||
) ENGINE = InnoDB COMMENT ='App版本信息表';
|
||
|
||
-- 11、App文件表
|
||
DROP TABLE IF EXISTS `app_file`;
|
||
CREATE TABLE `app_file`
|
||
(
|
||
`file_id` bigint NOT NULL AUTO_INCREMENT COMMENT '文件ID',
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件名称',
|
||
`original_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '原始文件名',
|
||
`file_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件路径',
|
||
`file_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件URL',
|
||
`file_size` bigint NOT NULL DEFAULT 0 COMMENT '文件大小(字节)',
|
||
`file_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件类型',
|
||
`file_suffix` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件后缀',
|
||
`file_category` int NOT NULL DEFAULT 6 COMMENT '文件分类(1头像 2图片 3视频 4音频 5文档 6其他)',
|
||
`storage_service` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '存储服务',
|
||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '状态(0正常 1删除)',
|
||
`download_count` bigint NOT NULL DEFAULT 0 COMMENT '下载次数',
|
||
`is_public` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '是否公开(0私有 1公开)',
|
||
`file_md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件MD5值',
|
||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
|
||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
|
||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`file_id`) USING BTREE,
|
||
INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '用户ID索引',
|
||
INDEX `idx_file_category`(`file_category` ASC) USING BTREE COMMENT '文件分类索引',
|
||
INDEX `idx_status`(`status` ASC) USING BTREE COMMENT '状态索引',
|
||
INDEX `idx_is_public`(`is_public` ASC) USING BTREE COMMENT '公开状态索引',
|
||
INDEX `idx_file_md5`(`file_md5` ASC) USING BTREE COMMENT 'MD5索引',
|
||
INDEX `idx_create_time`(`create_time` ASC) USING BTREE COMMENT '创建时间索引'
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'App端文件信息表' ROW_FORMAT = Dynamic; |