ichat_schema.1.2.8.sql 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. /* ---------------------------------------------------- */
  2. /* Generated by Enterprise Architect Version 12.0 */
  3. /* Created On : 09-Dec-2016 10:34:58 AM */
  4. /* DBMS : MySql */
  5. /* ---------------------------------------------------- */
  6. SET FOREIGN_KEY_CHECKS=0;
  7. /* Drop Tables */
  8. DROP TABLE IF EXISTS `topics` CASCADE
  9. ;
  10. DROP TABLE IF EXISTS `p2p_messages` CASCADE
  11. ;
  12. DROP TABLE IF EXISTS `group_messages` CASCADE
  13. ;
  14. DROP TABLE IF EXISTS `sync_log` CASCADE
  15. ;
  16. DROP TABLE IF EXISTS `muc_messages` CASCADE
  17. ;
  18. DROP TABLE IF EXISTS `participants` CASCADE
  19. ;
  20. DROP TABLE IF EXISTS `sessions` CASCADE
  21. ;
  22. DROP TABLE IF EXISTS `doctors` CASCADE
  23. ;
  24. DROP TABLE IF EXISTS `patients` CASCADE
  25. ;
  26. /* Create Tables */
  27. CREATE TABLE `topics`
  28. (
  29. `id` INTEGER NOT NULL COMMENT 'ID',
  30. `session_id` VARCHAR(50) NOT NULL COMMENT 'MUC会话ID',
  31. `name` VARCHAR(50) COMMENT '议题名称',
  32. `create_time` TIMESTAMP(0) COMMENT '创建时间',
  33. `end_by` VARCHAR(50) COMMENT '结束人ID',
  34. `start_message_id` INTEGER COMMENT '消息起始ID',
  35. `end_message_id` INTEGER COMMENT '消息结束ID',
  36. CONSTRAINT `PK_topics` PRIMARY KEY (`id`)
  37. ) COMMENT='议题,仅MUC模式使用。'
  38. ;
  39. CREATE TABLE `p2p_messages`
  40. (
  41. `id` INTEGER NOT NULL COMMENT '消息ID',
  42. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  43. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  44. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  45. `content` VARCHAR(1024) COMMENT '消息内容',
  46. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  47. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  48. ) COMMENT='P2P会话消息'
  49. ;
  50. CREATE TABLE `group_messages`
  51. (
  52. `id` INTEGER NOT NULL COMMENT '消息ID',
  53. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  54. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  55. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  56. `content` VARCHAR(1024) COMMENT '消息内容',
  57. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  58. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  59. ) COMMENT='群会话消息'
  60. ;
  61. CREATE TABLE `sync_log`
  62. (
  63. `event` VARCHAR(50) NOT NULL COMMENT '事件名称',
  64. `last_sync_time` TIMESTAMP NOT NULL COMMENT '最近更新时间',
  65. `succeed` TINYINT COMMENT '是否成功',
  66. `message` VARCHAR(50) COMMENT '消息'
  67. ) COMMENT='用户同步日志'
  68. ;
  69. CREATE TABLE `muc_messages`
  70. (
  71. `id` INTEGER NOT NULL COMMENT '消息ID',
  72. `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
  73. `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
  74. `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
  75. `content` VARCHAR(1024) COMMENT '消息内容',
  76. `timestamp` TIMESTAMP(0) COMMENT '发送时间',
  77. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  78. ) COMMENT='MUC会话消息'
  79. ;
  80. CREATE TABLE `participants`
  81. (
  82. `session_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
  83. `participaint_id` VARCHAR(50) NOT NULL COMMENT '参与者ID',
  84. `member_type` INTEGER NOT NULL COMMENT '成员类型,1医生,2患者',
  85. `receiving` TINYINT COMMENT '当前是否正在接收',
  86. CONSTRAINT `PK_participants` PRIMARY KEY (`session_id`,`participaint_id`)
  87. ) COMMENT='会话参与者'
  88. ;
  89. CREATE TABLE `sessions`
  90. (
  91. `id` VARCHAR(50) NOT NULL COMMENT '会话标识。会话标识来源根据业务场景:1 医生间P2P会话使用随机生成的ID;2 医生间的群会话使用行政团队的ID;3 医生与患者间的咨询以患者的ID+当前咨询次数为ID',
  92. `name` VARCHAR(50) NOT NULL COMMENT '会话名称',
  93. `type` INTEGER NOT NULL COMMENT '会话类型,1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组',
  94. `create_date` DATE NOT NULL COMMENT '创建时间',
  95. CONSTRAINT `PK_sessions` PRIMARY KEY (`id`)
  96. ) COMMENT='会话'
  97. ;
  98. CREATE TABLE `doctors`
  99. (
  100. `id` VARCHAR(50) NOT NULL COMMENT 'ID',
  101. `name` VARCHAR(30) NOT NULL COMMENT '姓名',
  102. `sex` INTEGER NOT NULL COMMENT '性别',
  103. `birthdate` DATE COMMENT '出生日期',
  104. `avatar` VARCHAR(255) COMMENT '头像',
  105. `level` INTEGER COMMENT '级别',
  106. `locked` TINYINT NOT NULL DEFAULT 0 COMMENT '是否禁用',
  107. CONSTRAINT `PK_doctors` PRIMARY KEY (`id`)
  108. ) COMMENT='医生'
  109. ;
  110. CREATE TABLE `patients`
  111. (
  112. `id` VARCHAR(50) NOT NULL COMMENT 'ID',
  113. `name` VARCHAR(30) COMMENT '姓名',
  114. `sex` INTEGER COMMENT '性别',
  115. `avatar` VARCHAR(255) COMMENT '头像',
  116. `birthdate` DATE COMMENT '出生日期',
  117. CONSTRAINT `PK_users` PRIMARY KEY (`id`)
  118. ) COMMENT='患者'
  119. ;
  120. /* Create Primary Keys, Indexes, Uniques, Checks */
  121. ALTER TABLE `topics`
  122. ADD INDEX `IXFK_topics_sessions` (`session_id` ASC)
  123. ;
  124. ALTER TABLE `p2p_messages`
  125. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  126. ;
  127. ALTER TABLE `p2p_messages`
  128. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  129. ;
  130. ALTER TABLE `group_messages`
  131. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  132. ;
  133. ALTER TABLE `group_messages`
  134. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  135. ;
  136. ALTER TABLE `muc_messages`
  137. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  138. ;
  139. ALTER TABLE `muc_messages`
  140. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  141. ;
  142. SET FOREIGN_KEY_CHECKS=1