main_table.sql 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. -- liquibase formatted sql
  2. -- changeset charles7c:1
  3. -- comment 初始化表结构
  4. CREATE TABLE IF NOT EXISTS `sys_menu` (
  5. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  6. `title` varchar(30) NOT NULL COMMENT '标题',
  7. `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级菜单ID',
  8. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:目录;2:菜单;3:按钮)',
  9. `path` varchar(255) DEFAULT NULL COMMENT '路由地址',
  10. `name` varchar(50) DEFAULT NULL COMMENT '组件名称',
  11. `component` varchar(255) DEFAULT NULL COMMENT '组件路径',
  12. `redirect` varchar(255) DEFAULT NULL COMMENT '重定向地址',
  13. `icon` varchar(50) DEFAULT NULL COMMENT '图标',
  14. `is_external` bit(1) DEFAULT b'0' COMMENT '是否外链',
  15. `is_cache` bit(1) DEFAULT b'0' COMMENT '是否缓存',
  16. `is_hidden` bit(1) DEFAULT b'0' COMMENT '是否隐藏',
  17. `permission` varchar(100) DEFAULT NULL COMMENT '权限标识',
  18. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  19. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  20. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  21. `create_time` datetime NOT NULL COMMENT '创建时间',
  22. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  23. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  24. PRIMARY KEY (`id`),
  25. UNIQUE INDEX `uk_title_parent_id`(`title`, `parent_id`),
  26. INDEX `idx_parent_id`(`parent_id`),
  27. INDEX `idx_create_user`(`create_user`),
  28. INDEX `idx_update_user`(`update_user`)
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';
  30. CREATE TABLE IF NOT EXISTS `sys_dept` (
  31. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  32. `name` varchar(30) NOT NULL COMMENT '名称',
  33. `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级部门ID',
  34. `ancestors` varchar(512) NOT NULL DEFAULT '' COMMENT '祖级列表',
  35. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  36. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  37. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  38. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  39. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  40. `create_time` datetime NOT NULL COMMENT '创建时间',
  41. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  42. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  43. PRIMARY KEY (`id`),
  44. UNIQUE INDEX `uk_name_parent_id`(`name`, `parent_id`),
  45. INDEX `idx_parent_id`(`parent_id`),
  46. INDEX `idx_create_user`(`create_user`),
  47. INDEX `idx_update_user`(`update_user`)
  48. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';
  49. CREATE TABLE IF NOT EXISTS `sys_role` (
  50. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  51. `name` varchar(30) NOT NULL COMMENT '名称',
  52. `code` varchar(30) NOT NULL COMMENT '编码',
  53. `data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限(1:全部数据权限;2:本部门及以下数据权限;3:本部门数据权限;4:仅本人数据权限;5:自定义数据权限)',
  54. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  55. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  56. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  57. `menu_check_strictly` bit(1) DEFAULT b'0' COMMENT '菜单选择是否父子节点关联',
  58. `dept_check_strictly` bit(1) DEFAULT b'0' COMMENT '部门选择是否父子节点关联',
  59. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  60. `create_time` datetime NOT NULL COMMENT '创建时间',
  61. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  62. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  63. PRIMARY KEY (`id`),
  64. UNIQUE INDEX `uk_name`(`name`),
  65. UNIQUE INDEX `uk_code`(`code`),
  66. INDEX `idx_create_user`(`create_user`),
  67. INDEX `idx_update_user`(`update_user`)
  68. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
  69. CREATE TABLE IF NOT EXISTS `sys_user` (
  70. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  71. `username` varchar(64) NOT NULL COMMENT '用户名',
  72. `nickname` varchar(30) NOT NULL COMMENT '昵称',
  73. `password` varchar(255) DEFAULT NULL COMMENT '密码',
  74. `gender` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0:未知;1:男;2:女)',
  75. `email` varchar(255) DEFAULT NULL COMMENT '邮箱',
  76. `phone` varchar(255) DEFAULT NULL COMMENT '手机号码',
  77. `avatar` longtext DEFAULT NULL COMMENT '头像',
  78. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  79. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  80. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  81. `pwd_reset_time` datetime DEFAULT NULL COMMENT '最后一次修改密码时间',
  82. `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
  83. `create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
  84. `create_time` datetime NOT NULL COMMENT '创建时间',
  85. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  86. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  87. PRIMARY KEY (`id`),
  88. UNIQUE INDEX `uk_username`(`username`),
  89. UNIQUE INDEX `uk_email`(`email`),
  90. UNIQUE INDEX `uk_phone`(`phone`),
  91. INDEX `idx_dept_id`(`dept_id`),
  92. INDEX `idx_create_user`(`create_user`),
  93. INDEX `idx_update_user`(`update_user`)
  94. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
  95. CREATE TABLE IF NOT EXISTS `sys_user_password_history` (
  96. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  97. `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  98. `password` varchar(255) NOT NULL COMMENT '密码',
  99. `create_time` datetime NOT NULL COMMENT '创建时间',
  100. PRIMARY KEY (`id`),
  101. INDEX `idx_user_id`(`user_id`)
  102. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户历史密码表';
  103. CREATE TABLE IF NOT EXISTS `sys_user_social` (
  104. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  105. `source` varchar(255) NOT NULL COMMENT '来源',
  106. `open_id` varchar(255) NOT NULL COMMENT '开放ID',
  107. `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  108. `meta_json` text DEFAULT NULL COMMENT '附加信息',
  109. `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
  110. `create_time` datetime NOT NULL COMMENT '创建时间',
  111. PRIMARY KEY (`id`),
  112. UNIQUE INDEX `uk_source_open_id`(`source`, `open_id`)
  113. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户社会化关联表';
  114. CREATE TABLE IF NOT EXISTS `sys_user_role` (
  115. `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  116. `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  117. PRIMARY KEY (`user_id`, `role_id`)
  118. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和角色关联表';
  119. CREATE TABLE IF NOT EXISTS `sys_role_menu` (
  120. `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  121. `menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
  122. PRIMARY KEY (`role_id`, `menu_id`)
  123. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和菜单关联表';
  124. CREATE TABLE IF NOT EXISTS `sys_role_dept` (
  125. `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  126. `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
  127. PRIMARY KEY (`role_id`, `dept_id`)
  128. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和部门关联表';
  129. CREATE TABLE IF NOT EXISTS `sys_option` (
  130. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  131. `category` varchar(50) NOT NULL COMMENT '类别',
  132. `name` varchar(50) NOT NULL COMMENT '名称',
  133. `code` varchar(100) NOT NULL COMMENT '键',
  134. `value` longtext DEFAULT NULL COMMENT '值',
  135. `default_value` longtext DEFAULT NULL COMMENT '默认值',
  136. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  137. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  138. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  139. PRIMARY KEY (`id`),
  140. UNIQUE INDEX `uk_category_code`(`category`, `code`)
  141. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数表';
  142. CREATE TABLE IF NOT EXISTS `sys_dict` (
  143. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  144. `name` varchar(30) NOT NULL COMMENT '名称',
  145. `code` varchar(30) NOT NULL COMMENT '编码',
  146. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  147. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  148. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  149. `create_time` datetime NOT NULL COMMENT '创建时间',
  150. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  151. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  152. PRIMARY KEY (`id`),
  153. UNIQUE INDEX `uk_name`(`name`),
  154. UNIQUE INDEX `uk_code`(`code`)
  155. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典表';
  156. CREATE TABLE IF NOT EXISTS `sys_dict_item` (
  157. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  158. `label` varchar(30) NOT NULL COMMENT '标签',
  159. `value` varchar(30) NOT NULL COMMENT '值',
  160. `color` varchar(30) DEFAULT NULL COMMENT '标签颜色',
  161. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  162. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  163. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  164. `dict_id` bigint(20) NOT NULL COMMENT '字典ID',
  165. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  166. `create_time` datetime NOT NULL COMMENT '创建时间',
  167. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  168. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  169. PRIMARY KEY (`id`),
  170. UNIQUE INDEX `uk_value_dict_id`(`value`, `dict_id`),
  171. INDEX `idx_dict_id`(`dict_id`),
  172. INDEX `idx_create_user`(`create_user`),
  173. INDEX `idx_update_user`(`update_user`)
  174. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典项表';
  175. CREATE TABLE IF NOT EXISTS `sys_log` (
  176. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  177. `trace_id` varchar(255) DEFAULT NULL COMMENT '链路ID',
  178. `description` varchar(255) NOT NULL COMMENT '日志描述',
  179. `module` varchar(50) NOT NULL COMMENT '所属模块',
  180. `request_url` varchar(512) NOT NULL COMMENT '请求URL',
  181. `request_method` varchar(10) NOT NULL COMMENT '请求方式',
  182. `request_headers` text DEFAULT NULL COMMENT '请求头',
  183. `request_body` text DEFAULT NULL COMMENT '请求体',
  184. `status_code` int NOT NULL COMMENT '状态码',
  185. `response_headers` text DEFAULT NULL COMMENT '响应头',
  186. `response_body` mediumtext DEFAULT NULL COMMENT '响应体',
  187. `time_taken` bigint(20) NOT NULL COMMENT '耗时(ms)',
  188. `ip` varchar(100) DEFAULT NULL COMMENT 'IP',
  189. `address` varchar(255) DEFAULT NULL COMMENT 'IP归属地',
  190. `browser` varchar(100) DEFAULT NULL COMMENT '浏览器',
  191. `os` varchar(100) DEFAULT NULL COMMENT '操作系统',
  192. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:成功;2:失败)',
  193. `error_msg` text DEFAULT NULL COMMENT '错误信息',
  194. `create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
  195. `create_time` datetime NOT NULL COMMENT '创建时间',
  196. PRIMARY KEY (`id`),
  197. INDEX `idx_module`(`module`),
  198. INDEX `idx_ip`(`ip`),
  199. INDEX `idx_address`(`address`),
  200. INDEX `idx_create_time`(`create_time`)
  201. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统日志表';
  202. CREATE TABLE IF NOT EXISTS `sys_message` (
  203. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  204. `title` varchar(50) NOT NULL COMMENT '标题',
  205. `content` varchar(255) DEFAULT NULL COMMENT '内容',
  206. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:系统消息)',
  207. `create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
  208. `create_time` datetime NOT NULL COMMENT '创建时间',
  209. PRIMARY KEY (`id`)
  210. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息表';
  211. CREATE TABLE IF NOT EXISTS `sys_message_user` (
  212. `message_id` bigint(20) NOT NULL COMMENT '消息ID',
  213. `user_id` bigint(11) NOT NULL COMMENT '用户ID',
  214. `is_read` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已读',
  215. `read_time` datetime DEFAULT NULL COMMENT '读取时间',
  216. PRIMARY KEY (`message_id`, `user_id`)
  217. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息和用户关联表';
  218. CREATE TABLE IF NOT EXISTS `sys_notice` (
  219. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  220. `title` varchar(150) NOT NULL COMMENT '标题',
  221. `content` mediumtext NOT NULL COMMENT '内容',
  222. `type` varchar(30) NOT NULL COMMENT '类型',
  223. `effective_time` datetime DEFAULT NULL COMMENT '生效时间',
  224. `terminate_time` datetime DEFAULT NULL COMMENT '终止时间',
  225. `notice_scope` int NOT NULL COMMENT '通知范围',
  226. `notice_users` json DEFAULT NULL COMMENT '通知用户',
  227. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  228. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  229. `create_time` datetime NOT NULL COMMENT '创建时间',
  230. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  231. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  232. PRIMARY KEY (`id`),
  233. INDEX `idx_create_user`(`create_user`),
  234. INDEX `idx_update_user`(`update_user`)
  235. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告表';
  236. CREATE TABLE IF NOT EXISTS `sys_storage` (
  237. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  238. `name` varchar(100) NOT NULL COMMENT '名称',
  239. `code` varchar(30) NOT NULL COMMENT '编码',
  240. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:兼容S3协议存储;2:本地存储)',
  241. `access_key` varchar(255) DEFAULT NULL COMMENT 'Access Key(访问密钥)',
  242. `secret_key` varchar(255) DEFAULT NULL COMMENT 'Secret Key(私有密钥)',
  243. `endpoint` varchar(255) DEFAULT NULL COMMENT 'Endpoint(终端节点)',
  244. `bucket_name` varchar(255) DEFAULT NULL COMMENT '桶名称',
  245. `domain` varchar(255) NOT NULL DEFAULT '' COMMENT '域名',
  246. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  247. `is_default` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为默认存储',
  248. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  249. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  250. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  251. `create_time` datetime NOT NULL COMMENT '创建时间',
  252. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  253. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  254. PRIMARY KEY (`id`),
  255. UNIQUE INDEX `uk_code`(`code`),
  256. INDEX `idx_create_user`(`create_user`),
  257. INDEX `idx_update_user`(`update_user`)
  258. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='存储表';
  259. CREATE TABLE IF NOT EXISTS `sys_file` (
  260. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  261. `name` varchar(255) NOT NULL COMMENT '名称',
  262. `size` bigint(20) NOT NULL COMMENT '大小(字节)',
  263. `url` varchar(512) NOT NULL COMMENT 'URL',
  264. `extension` varchar(100) DEFAULT NULL COMMENT '扩展名',
  265. `thumbnail_size` bigint(20) DEFAULT NULL COMMENT '缩略图大小(字节)',
  266. `thumbnail_url` varchar(512) DEFAULT NULL COMMENT '缩略图URL',
  267. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:其他;2:图片;3:文档;4:视频;5:音频)',
  268. `storage_id` bigint(20) NOT NULL COMMENT '存储ID',
  269. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  270. `create_time` datetime NOT NULL COMMENT '创建时间',
  271. `update_user` bigint(20) NOT NULL COMMENT '修改人',
  272. `update_time` datetime NOT NULL COMMENT '修改时间',
  273. PRIMARY KEY (`id`),
  274. INDEX `idx_url`(`url`),
  275. INDEX `idx_type`(`type`),
  276. INDEX `idx_create_user`(`create_user`),
  277. INDEX `idx_update_user`(`update_user`)
  278. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件表';