/* ---------------------------------------------------- */ /* Generated by Enterprise Architect Version 12.0 */ /* Created On : 09-Dec-2016 10:34:58 AM */ /* DBMS : MySql */ /* ---------------------------------------------------- */ SET FOREIGN_KEY_CHECKS=0; /* Drop Tables */ DROP TABLE IF EXISTS `topics` CASCADE ; DROP TABLE IF EXISTS `p2p_messages` CASCADE ; DROP TABLE IF EXISTS `group_messages` CASCADE ; DROP TABLE IF EXISTS `sync_log` CASCADE ; DROP TABLE IF EXISTS `muc_messages` CASCADE ; DROP TABLE IF EXISTS `participants` CASCADE ; DROP TABLE IF EXISTS `sessions` CASCADE ; DROP TABLE IF EXISTS `doctors` CASCADE ; DROP TABLE IF EXISTS `patients` CASCADE ; /* Create Tables */ CREATE TABLE `topics` ( `id` INTEGER 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', `start_message_id` INTEGER COMMENT '消息起始ID', `end_message_id` INTEGER COMMENT '消息结束ID', CONSTRAINT `PK_topics` PRIMARY KEY (`id`) ) COMMENT='议题,仅MUC模式使用。' ; CREATE TABLE `p2p_messages` ( `id` INTEGER NOT NULL COMMENT '消息ID', `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话', `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者', `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束', `content` VARCHAR(1024) COMMENT '消息内容', `timestamp` TIMESTAMP(0) COMMENT '发送时间', CONSTRAINT `PK_messages` PRIMARY KEY (`id`) ) COMMENT='P2P会话消息' ; CREATE TABLE `group_messages` ( `id` INTEGER NOT NULL COMMENT '消息ID', `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话', `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者', `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束', `content` VARCHAR(1024) COMMENT '消息内容', `timestamp` TIMESTAMP(0) COMMENT '发送时间', CONSTRAINT `PK_messages` PRIMARY KEY (`id`) ) COMMENT='群会话消息' ; CREATE TABLE `sync_log` ( `event` VARCHAR(50) NOT NULL COMMENT '事件名称', `last_sync_time` TIMESTAMP NOT NULL COMMENT '最近更新时间', `succeed` TINYINT COMMENT '是否成功', `message` VARCHAR(50) COMMENT '消息' ) COMMENT='用户同步日志' ; CREATE TABLE `muc_messages` ( `id` INTEGER NOT NULL COMMENT '消息ID', `session_id` VARCHAR(50) NOT NULL COMMENT '所属会话', `sender_id` VARCHAR(50) NOT NULL COMMENT '消息发送者', `content_type` INTEGER NOT NULL COMMENT '消息类型,1文本,2图片,3语音,4文章,5跳转,6咨询开始,7咨询结束', `content` VARCHAR(1024) COMMENT '消息内容', `timestamp` TIMESTAMP(0) COMMENT '发送时间', CONSTRAINT `PK_messages` PRIMARY KEY (`id`) ) COMMENT='MUC会话消息' ; CREATE TABLE `participants` ( `session_id` VARCHAR(50) NOT NULL COMMENT '会话ID', `participaint_id` VARCHAR(50) NOT NULL COMMENT '参与者ID', `member_type` INTEGER NOT NULL COMMENT '成员类型,1医生,2患者', `receiving` TINYINT COMMENT '当前是否正在接收', CONSTRAINT `PK_participants` PRIMARY KEY (`session_id`,`participaint_id`) ) 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 '会话类型,1表示MUC会话,2表示P2P,3表示群会话,4表示临时讨论组', `create_date` DATE NOT NULL COMMENT '创建时间', CONSTRAINT `PK_sessions` PRIMARY KEY (`id`) ) COMMENT='会话' ; CREATE TABLE `doctors` ( `id` VARCHAR(50) NOT NULL COMMENT 'ID', `name` VARCHAR(30) NOT NULL COMMENT '姓名', `sex` INTEGER NOT NULL COMMENT '性别', `birthdate` DATE COMMENT '出生日期', `avatar` VARCHAR(255) COMMENT '头像', `level` INTEGER COMMENT '级别', `locked` TINYINT NOT NULL DEFAULT 0 COMMENT '是否禁用', CONSTRAINT `PK_doctors` PRIMARY KEY (`id`) ) COMMENT='医生' ; CREATE TABLE `patients` ( `id` VARCHAR(50) NOT NULL COMMENT 'ID', `name` VARCHAR(30) COMMENT '姓名', `sex` INTEGER COMMENT '性别', `avatar` VARCHAR(255) COMMENT '头像', `birthdate` DATE COMMENT '出生日期', CONSTRAINT `PK_users` PRIMARY KEY (`id`) ) COMMENT='患者' ; /* Create Primary Keys, Indexes, Uniques, Checks */ 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