CREATE TABLE `user_authority`  (
  `id` int NOT NULL,
  `server` varchar(255) NOT NULL COMMENT '服务名',
  `index` varchar(255) NOT NULL COMMENT '权限标识',
  `name` varchar(255) NOT NULL COMMENT '权限名称',
  `type` varchar(255) NOT NULL COMMENT '权限类型（菜单、按钮、接口）',
  `father_id` int NULL COMMENT '父权限',
  `describe` varchar(255) NULL COMMENT '权限描述',
  `creator` varchar(255) NOT NULL COMMENT '创建人',
  `ico` varchar(255) NULL COMMENT '图标链接',
  `is_delete` int NOT NULL DEFAULT 0 COMMENT '是否删除',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

CREATE TABLE `user_authority_relation`  (
  `id` int NOT NULL,
  `position_id` int NOT NULL COMMENT '角色定位id',
  `authority_id` int NOT NULL COMMENT '权限id',
  `creator` varchar(255) NOT NULL COMMENT '创建人',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

CREATE TABLE `user_info_base`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '自增ID，用于区分，以及备份索引',
  `uuid` varchar(32) NOT NULL COMMENT '每个用户的唯一用户标识',
  `state` int NOT NULL DEFAULT 0 COMMENT '用户账号的状态\n0是未激活\n1是正常\n2是禁用\n3是注销',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `about_id` int NULL COMMENT '关联账号（注销关联）',
  PRIMARY KEY (`id`)
) COMMENT = '用户基础信息表，存储用户的唯一索引';

CREATE TABLE `user_info_extra`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `uuid` varchar(32) NOT NULL COMMENT '用户唯一标识',
  `realname` varchar(255) NULL COMMENT '真实姓名',
  `nickname` varchar(255) NULL COMMENT '昵称',
  `birthday` bigint NULL COMMENT '生日',
  `sex` int NULL COMMENT '性别',
  `address` varchar(255) NULL COMMENT '地址',
  `country` varchar(255) NULL COMMENT '国家',
  `profile` varchar(255) NULL COMMENT '个人简介',
  `alibaba_id` varchar(255) NULL COMMENT '阿里账号',
  `tiktok_id` varchar(255) NULL COMMENT '抖音账号',
  `weibo_id` int NULL COMMENT '微博帐号',
  `github_url` varchar(255) NULL COMMENT 'github地址',
  `personal_url` varchar(255) NULL COMMENT '个人网站地址',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) COMMENT = '用户一般拓展信息表';

CREATE TABLE `user_info_extra_describe`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `uuid` varchar(32) NOT NULL,
  `like` varchar(255) NULL COMMENT '爱好',
  `other` varchar(255) NULL COMMENT '其他属性',
  `motion` varchar(255) NULL COMMENT '运动',
  `film` varchar(255) NULL COMMENT '电影',
  `person` varchar(255) NULL COMMENT '特别的人',
  `animal` varchar(255) NULL COMMENT '动物',
  `plant` varchar(255) NULL COMMENT '植物',
  `place` varchar(255) NULL COMMENT '想去的地方',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) COMMENT = '用户描述性信息表';

CREATE TABLE `user_info_extra_signone`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `uuid` varchar(32) NOT NULL,
  `describe` varchar(255) NOT NULL,
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) COMMENT = '用户签名列表';

CREATE TABLE `user_info_passwd`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `uuid` varchar(32) NOT NULL COMMENT '关联用户唯一标识',
  `passwd` varchar(255) NOT NULL COMMENT '密码',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) COMMENT = '密码表';

CREATE TABLE `user_info_verify`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `uuid` varchar(32) NOT NULL COMMENT 'uuid关联基础用户信息',
  `username` varchar(32) NULL COMMENT '用户名称',
  `phone` varchar(11) NULL COMMENT '手机号',
  `wechatid` varchar(32) NULL COMMENT '微信id',
  `email` varchar(255) NULL COMMENT '邮箱',
  `residentid` varchar(32) NULL COMMENT '身份证',
  `qq` bigint NULL COMMENT 'qq号',
  `is_multiplex` int NOT NULL DEFAULT 0 COMMENT '是否复用',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

CREATE TABLE `user_position`  (
  `id` int NOT NULL,
  `type` varchar(255) NOT NULL COMMENT '角色定位类型',
  `fatherid` int NULL COMMENT '父id',
  `name` varchar(255) NOT NULL COMMENT '角色名称',
  `index` varchar(255) NOT NULL COMMENT '角色定位标识',
  `describe` varchar(255) NULL COMMENT '角色定位描述',
  `creator` varchar(32) NULL COMMENT '创建人uuid',
  `ico` varchar(255) NULL COMMENT 'logo路径',
  `is_delete` int NOT NULL DEFAULT 0 COMMENT '是否删除',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) COMMENT = '用户角色定位表';

CREATE TABLE `user_position_relation`  (
  `id` int NOT NULL,
  `uuid` varchar(32) NOT NULL COMMENT '用户标识',
  `position_id` int NOT NULL COMMENT '角色定位id',
  `is_delete` int NOT NULL DEFAULT 0 COMMENT '是否删除',
  `createtime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

