|  | @ -1,6 +1,6 @@
 | 
	
		
			
				|  |  | /* ---------------------------------------------------- */
 | 
	
		
			
				|  |  | /*  Generated by Enterprise Architect Version 12.0 		*/
 | 
	
		
			
				|  |  | /*  Created On : 18-Jan-2017 2:35:45 PM 				*/
 | 
	
		
			
				|  |  | /*  Created On : 18-Jan-2017 3:37:41 PM 				*/
 | 
	
		
			
				|  |  | /*  DBMS       : MySql 						*/
 | 
	
		
			
				|  |  | /* ---------------------------------------------------- */
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -8,70 +8,11 @@ SET FOREIGN_KEY_CHECKS=0
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /* Drop Tables */
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `system_messages` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `sticky_sessions` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `wechat_access_tokens` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `app_status` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `topics` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `p2p_messages` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `group_messages` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `muc_messages` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `participants` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | DROP TABLE IF EXISTS `sessions` CASCADE
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /* Create Tables */
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `system_messages`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`id` VARCHAR(32) NOT NULL COMMENT '消息ID',
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
 | 
	
		
			
				|  |  | 	`sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
 | 
	
		
			
				|  |  | 	`sender_name` VARCHAR(50),
 | 
	
		
			
				|  |  | 	`content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
 | 
	
		
			
				|  |  | 	`content` VARCHAR(1024) COMMENT '消息内容',
 | 
	
		
			
				|  |  | 	`business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
 | 
	
		
			
				|  |  | 	`timestamp` TIMESTAMP(0) COMMENT '发送时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
 | 
	
		
			
				|  |  | ) COMMENT='P2P会话消息'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `sticky_sessions`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
 | 
	
		
			
				|  |  | 	`score` NUMERIC(15,0) COMMENT '置顶分值',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_sticky_sessions` PRIMARY KEY (`user_id`,`session_id`)
 | 
	
		
			
				|  |  | ) COMMENT='置顶会话'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `wechat_access_tokens`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`access_token` VARCHAR(50) NOT NULL COMMENT '访问token',
 | 
	
		
			
				|  |  | 	`expiry_date` TIMESTAMP(0) COMMENT '过期时间',
 | 
	
		
			
				|  |  | 	`create_time` TIMESTAMP(0) COMMENT '数据创建时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_wechat_access_tokens` PRIMARY KEY (`access_token`)
 | 
	
		
			
				|  |  | ) COMMENT='微信接口调用所需要token'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `app_status`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
 | 
	
	
		
			
				|  | @ -79,131 +20,9 @@ CREATE TABLE `app_status`
 | 
	
		
			
				|  |  | 	`token` VARCHAR(100) COMMENT '个推Token',
 | 
	
		
			
				|  |  | 	`client_id` VARCHAR(100) COMMENT '客户端ID',
 | 
	
		
			
				|  |  | 	`app_in_bg` TINYINT COMMENT 'App是否处于后台状态',
 | 
	
		
			
				|  |  | 	`last_login_time` TIMESTAMP(0) COMMENT '最后登录时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_user_status` PRIMARY KEY (`user_id`)
 | 
	
		
			
				|  |  | ) COMMENT='app端状态'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `topics`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`id` VARCHAR(32) NOT NULL COMMENT 'ID',
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT 'MUC会话ID',
 | 
	
		
			
				|  |  | 	`name` VARCHAR(50) COMMENT '议题名称',
 | 
	
		
			
				|  |  | 	`create_time` TIMESTAMP(0) COMMENT '创建时间',
 | 
	
		
			
				|  |  | 	`end_by` VARCHAR(50) COMMENT '结束人ID',
 | 
	
		
			
				|  |  | 	`end_time` TIMESTAMP(0) COMMENT '结束时间',
 | 
	
		
			
				|  |  | 	`start_message_id` INTEGER COMMENT '消息起始ID',
 | 
	
		
			
				|  |  | 	`end_message_id` INTEGER COMMENT '消息结束ID',
 | 
	
		
			
				|  |  | 	`status` INT COMMENT '议题状态,0新建,1已回复未结束,10结束',
 | 
	
		
			
				|  |  | 	`description` VARCHAR(1024) COMMENT '议题描述',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_topics` PRIMARY KEY (`id`)
 | 
	
		
			
				|  |  | ) COMMENT='议题,仅MUC模式使用。'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `p2p_messages`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`id` VARCHAR(32) NOT NULL COMMENT '消息ID',
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
 | 
	
		
			
				|  |  | 	`sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
 | 
	
		
			
				|  |  | 	`sender_name` VARCHAR(50),
 | 
	
		
			
				|  |  | 	`content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
 | 
	
		
			
				|  |  | 	`content` VARCHAR(1024) COMMENT '消息内容',
 | 
	
		
			
				|  |  | 	`business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
 | 
	
		
			
				|  |  | 	`timestamp` TIMESTAMP(0) COMMENT '发送时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
 | 
	
		
			
				|  |  | ) COMMENT='P2P会话消息'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `group_messages`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`id` VARCHAR(32) NOT NULL COMMENT '消息ID',
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
 | 
	
		
			
				|  |  | 	`sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
 | 
	
		
			
				|  |  | 	`sender_name` VARCHAR(50),
 | 
	
		
			
				|  |  | 	`content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
 | 
	
		
			
				|  |  | 	`content` VARCHAR(1024) COMMENT '消息内容',
 | 
	
		
			
				|  |  | 	`timestamp` TIMESTAMP(0) COMMENT '发送时间',
 | 
	
		
			
				|  |  | 	`business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
 | 
	
		
			
				|  |  | 	`at` VARCHAR(1024) COMMENT '发送消息时,at某人',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
 | 
	
		
			
				|  |  | ) COMMENT='群会话消息'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `muc_messages`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`id` VARCHAR(32) NOT NULL COMMENT '消息ID',
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT '所属会话',
 | 
	
		
			
				|  |  | 	`sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者',
 | 
	
		
			
				|  |  | 	`sender_name` VARCHAR(50),
 | 
	
		
			
				|  |  | 	`content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束',
 | 
	
		
			
				|  |  | 	`content` VARCHAR(1024) COMMENT '消息内容',
 | 
	
		
			
				|  |  | 	`business_type` VARCHAR(50) COMMENT '业务类型,IM不处理,只做存储与转发',
 | 
	
		
			
				|  |  | 	`timestamp` TIMESTAMP(0) COMMENT '发送时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
 | 
	
		
			
				|  |  | ) COMMENT='MUC会话消息'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `participants`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`session_id` VARCHAR(50) NOT NULL COMMENT '会话ID。ID结构:以患者ID+最大次数',
 | 
	
		
			
				|  |  | 	`participant_id` VARCHAR(50) NOT NULL COMMENT '参与者ID',
 | 
	
		
			
				|  |  | 	`participant_role` INTEGER COMMENT 'MUC中的参与者角色。0为主持人, 1为普通参与者, 10为旁听者',
 | 
	
		
			
				|  |  | 	`last_fetch_time` TIMESTAMP(0) COMMENT '最后获取此会话消息的时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_participants` PRIMARY KEY (`session_id`,`participant_id`)
 | 
	
		
			
				|  |  | ) ENGINE=InnoDB COMMENT='会话参与者'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | CREATE TABLE `sessions`
 | 
	
		
			
				|  |  | (
 | 
	
		
			
				|  |  | 	`id` VARCHAR(50) NOT NULL COMMENT '会话标识。会话标识来源根据业务场景:1 医生间P2P会话使用随机生成的ID;2 医生间的群会话使用行政团队的ID;3 医生与患者间的咨询以患者的ID+当前咨询次数为ID',
 | 
	
		
			
				|  |  | 	`name` VARCHAR(50) NOT NULL COMMENT '会话名称',
 | 
	
		
			
				|  |  | 	`type` INTEGER NOT NULL COMMENT '会话类型,0表示系统会话,1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组',
 | 
	
		
			
				|  |  | 	`business_type` INT COMMENT '业务相关类型',
 | 
	
		
			
				|  |  | 	`create_date` DATETIME(0) NOT NULL COMMENT '创建时间',
 | 
	
		
			
				|  |  | 	`last_sender_id` VARCHAR(50) COMMENT '消息最后发送人ID',
 | 
	
		
			
				|  |  | 	`last_sender_name` VARCHAR(50) COMMENT '消息最后发送人姓名',
 | 
	
		
			
				|  |  | 	`last_content_type` VARCHAR(50) COMMENT '消息最后内容类型',
 | 
	
		
			
				|  |  | 	`last_content` VARCHAR(1024) COMMENT '消息最后内容',
 | 
	
		
			
				|  |  | 	`last_message_time` TIMESTAMP(0) COMMENT '消息最后时间',
 | 
	
		
			
				|  |  | 	CONSTRAINT `PK_sessions` PRIMARY KEY (`id`)
 | 
	
		
			
				|  |  | ) COMMENT='会话'
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /* Create Primary Keys, Indexes, Uniques, Checks */
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `system_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `system_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `topics` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_topics_sessions` (`session_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `p2p_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `p2p_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `group_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `group_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `muc_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | ALTER TABLE `muc_messages` 
 | 
	
		
			
				|  |  |  ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
 | 
	
		
			
				|  |  | ;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | SET FOREIGN_KEY_CHECKS=1
 |