ichat_1.2.8_table_schema.sql 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. /* ---------------------------------------------------- */
  2. /* Generated by Enterprise Architect Version 12.0 */
  3. /* Created On : 23-Dec-2016 3:16:13 PM */
  4. /* DBMS : MySql */
  5. /* ---------------------------------------------------- */
  6. SET FOREIGN_KEY_CHECKS=0
  7. /* Drop Tables */
  8. DROP TABLE IF EXISTS `system_messages` CASCADE
  9. ;
  10. DROP TABLE IF EXISTS `sticky_sessions` CASCADE
  11. ;
  12. DROP TABLE IF EXISTS `wechat_access_tokens` CASCADE
  13. ;
  14. DROP TABLE IF EXISTS `app_status` CASCADE
  15. ;
  16. DROP TABLE IF EXISTS `topics` CASCADE
  17. ;
  18. DROP TABLE IF EXISTS `p2p_messages` CASCADE
  19. ;
  20. DROP TABLE IF EXISTS `group_messages` CASCADE
  21. ;
  22. DROP TABLE IF EXISTS `muc_messages` CASCADE
  23. ;
  24. DROP TABLE IF EXISTS `participants` CASCADE
  25. ;
  26. DROP TABLE IF EXISTS `sessions` CASCADE
  27. ;
  28. /* Create Tables */
  29. CREATE TABLE `system_messages`
  30. (
  31. `id` VARCHAR(32) NOT NULL COMMENT '消息ID',
  32. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  33. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  34. `sender_name` VARCHAR(50),
  35. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  36. `content` VARCHAR(1024) COMMENT '消息内容',
  37. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  38. `business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
  39. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  40. ) COMMENT='P2P会话消息'
  41. COLLATE='utf8mb4_general_ci'
  42. ENGINE=InnoDB
  43. ;
  44. CREATE TABLE `sticky_sessions`
  45. (
  46. `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
  47. `session_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
  48. `score` NUMERIC(15,0) COMMENT '置顶分值',
  49. CONSTRAINT `PK_sticky_sessions` PRIMARY KEY (`user_id`,`session_id`)
  50. ) COMMENT='置顶会话'
  51. COLLATE='utf8mb4_general_ci'
  52. ENGINE=InnoDB
  53. ;
  54. CREATE TABLE `wechat_access_tokens`
  55. (
  56. `access_token` VARCHAR(50) NOT NULL COMMENT '访问token',
  57. `expiry_date` TIMESTAMP(0) COMMENT '过期时间',
  58. `create_time` TIMESTAMP(0) COMMENT '数据创建时间',
  59. CONSTRAINT `PK_wechat_access_tokens` PRIMARY KEY (`access_token`)
  60. ) COMMENT='微信接口调用所需要token'
  61. COLLATE='utf8mb4_general_ci'
  62. ENGINE=InnoDB
  63. ;
  64. CREATE TABLE `app_status`
  65. (
  66. `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
  67. `platform` TINYINT COMMENT '平台,0为iOS,1为安卓',
  68. `token` VARCHAR(100) COMMENT '个推Token',
  69. `client_id` VARCHAR(100) COMMENT '客户端ID',
  70. `app_in_bg` TINYINT COMMENT 'App是否处于后台状态',
  71. `last_login_time` TIMESTAMP(0) COMMENT '最后登录时间',
  72. CONSTRAINT `PK_user_status` PRIMARY KEY (`user_id`)
  73. ) COMMENT='app端状态'
  74. COLLATE='utf8mb4_general_ci'
  75. ENGINE=InnoDB
  76. ;
  77. CREATE TABLE `topics`
  78. (
  79. `id` VARCHAR(32) NOT NULL COMMENT 'ID',
  80. `session_id` VARCHAR(50) NOT NULL COMMENT 'MUC会话ID',
  81. `name` VARCHAR(50) COMMENT '议题名称',
  82. `create_time` TIMESTAMP(0) COMMENT '创建时间',
  83. `end_by` VARCHAR(50) COMMENT '结束人ID',
  84. `end_time` TIMESTAMP(0) COMMENT '结束时间',
  85. `start_message_id` VARCHAR(50) COMMENT '消息起始ID',
  86. `end_message_id` VARCHAR(50) COMMENT '消息结束ID',
  87. `status` INT COMMENT '议题状态,0新建,1已回复未结束,10结束',
  88. `description` VARCHAR(1024) COMMENT '议题描述',
  89. CONSTRAINT `PK_topics` PRIMARY KEY (`id`)
  90. ) COMMENT='议题,仅MUC模式使用'
  91. COLLATE='utf8mb4_general_ci'
  92. ENGINE=InnoDB
  93. ;
  94. CREATE TABLE `p2p_messages`
  95. (
  96. `id` VARCHAR(32) NOT NULL COMMENT '消息ID',
  97. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  98. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  99. `sender_name` VARCHAR(50),
  100. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  101. `content` VARCHAR(1024) COMMENT '消息内容',
  102. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  103. `business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
  104. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  105. ) COMMENT='P2P会话消息'
  106. COLLATE='utf8mb4_general_ci'
  107. ENGINE=InnoDB
  108. ;
  109. CREATE TABLE `group_messages`
  110. (
  111. `id` VARCHAR(32) NOT NULL COMMENT '消息ID',
  112. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  113. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  114. `sender_name` VARCHAR(50),
  115. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  116. `content` VARCHAR(1024) COMMENT '消息内容',
  117. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  118. `business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
  119. `at` VARCHAR(1024) COMMENT '发送时,at某人',
  120. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  121. ) COMMENT='群会话消息'
  122. COLLATE='utf8mb4_general_ci'
  123. ENGINE=InnoDB
  124. ;
  125. CREATE TABLE `muc_messages`
  126. (
  127. `id` VARCHAR(32) NOT NULL COMMENT '消息ID',
  128. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  129. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  130. `sender_name` VARCHAR(50),
  131. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  132. `content` VARCHAR(1024) COMMENT '消息内容',
  133. `business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
  134. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  135. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  136. ) COMMENT='MUC会话消息'
  137. COLLATE='utf8mb4_general_ci'
  138. ENGINE=InnoDB
  139. ;
  140. CREATE TABLE `participants`
  141. (
  142. `session_id` VARCHAR(50) NOT NULL COMMENT '会话ID。ID结构:以患者ID+最大次数',
  143. `participant_id` VARCHAR(50) NOT NULL COMMENT '参与者ID',
  144. `participant_role` INTEGER COMMENT 'MUC中的参与者角色。0为主持人, 1为普通参与者, 10为旁听者',
  145. `last_fetch_time` TIMESTAMP(0) COMMENT '最后获取此会话消息的时间',
  146. CONSTRAINT `PK_participants` PRIMARY KEY (`session_id`,`participant_id`)
  147. ) COMMENT='会话参与者'
  148. COLLATE='utf8mb4_general_ci'
  149. ENGINE=InnoDB
  150. ;
  151. CREATE TABLE `sessions`
  152. (
  153. `id` VARCHAR(50) NOT NULL COMMENT '会话标识。会话标识来源根据业务场景:1 医生间P2P会话使用随机生成的ID;2 医生间的群会话使用行政团队的ID;3 医生与患者间的咨询以患者的ID+当前咨询次数为ID',
  154. `name` VARCHAR(50) NOT NULL COMMENT '会话名称',
  155. `type` INTEGER NOT NULL COMMENT '会话类型,1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组',
  156. `business_type` INT COMMENT '业务相关类型',
  157. `create_date` DATETIME(0) NOT NULL COMMENT '创建时间',
  158. `last_sender_id` VARCHAR(50) COMMENT '消息最后发送人ID',
  159. `last_sender_name` VARCHAR(50) COMMENT '消息最后发送人姓名',
  160. `last_content_type` VARCHAR(50) COMMENT '消息最后内容类型',
  161. `last_content` VARCHAR(5120) COMMENT '消息最后内容',
  162. `last_message_time` TIMESTAMP(0) COMMENT '消息最后时间',
  163. CONSTRAINT `PK_sessions` PRIMARY KEY (`id`)
  164. ) COMMENT='会话'
  165. COLLATE='utf8mb4_general_ci'
  166. ENGINE=InnoDB
  167. ;
  168. /* Create Primary Keys, Indexes, Uniques, Checks */
  169. ALTER TABLE `system_messages`
  170. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  171. ;
  172. ALTER TABLE `system_messages`
  173. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  174. ;
  175. ALTER TABLE `topics`
  176. ADD INDEX `IXFK_topics_sessions` (`session_id` ASC)
  177. ;
  178. ALTER TABLE `p2p_messages`
  179. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  180. ;
  181. ALTER TABLE `p2p_messages`
  182. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  183. ;
  184. ALTER TABLE `group_messages`
  185. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  186. ;
  187. ALTER TABLE `group_messages`
  188. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  189. ;
  190. ALTER TABLE `muc_messages`
  191. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  192. ;
  193. ALTER TABLE `muc_messages`
  194. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  195. ;
  196. SET FOREIGN_KEY_CHECKS=1
  197. ;