schema.sql 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. SET FOREIGN_KEY_CHECKS=0
  2. DROP TABLE IF EXISTS `topics` CASCADE
  3. ;
  4. DROP TABLE IF EXISTS `p2p_messages` CASCADE
  5. ;
  6. DROP TABLE IF EXISTS `group_messages` CASCADE
  7. ;
  8. DROP TABLE IF EXISTS `sync_log` CASCADE
  9. ;
  10. DROP TABLE IF EXISTS `muc_messages` CASCADE
  11. ;
  12. DROP TABLE IF EXISTS `participants` CASCADE
  13. ;
  14. DROP TABLE IF EXISTS `sessions` CASCADE
  15. ;
  16. DROP TABLE IF EXISTS `doctors` CASCADE
  17. ;
  18. DROP TABLE IF EXISTS `patients` CASCADE
  19. ;
  20. CREATE TABLE `topics`
  21. (
  22. `id` INTEGER NOT NULL,
  23. `session_id` VARCHAR(50) NOT NULL,
  24. `name` VARCHAR(50),
  25. `create_time` TIMESTAMP(0),
  26. `end_by` VARCHAR(50),
  27. `start_message_id` INTEGER,
  28. `end_message_id` INTEGER,
  29. CONSTRAINT `PK_topics` PRIMARY KEY (`id`)
  30. )
  31. ;
  32. CREATE TABLE `p2p_messages`
  33. (
  34. `id` INTEGER NOT NULL,
  35. `session_id` VARCHAR(50) NOT NULL,
  36. `sender_id` VARCHAR(50) NOT NULL,
  37. `content_type` INTEGER NOT NULL,
  38. `content` VARCHAR(1024),
  39. `timestamp` TIMESTAMP(0),
  40. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  41. )
  42. ;
  43. CREATE TABLE `group_messages`
  44. (
  45. `id` INTEGER NOT NULL,
  46. `session_id` VARCHAR(50) NOT NULL,
  47. `sender_id` VARCHAR(50) NOT NULL,
  48. `content_type` INTEGER NOT NULL,
  49. `content` VARCHAR(1024),
  50. `timestamp` TIMESTAMP(0),
  51. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  52. )
  53. ;
  54. CREATE TABLE `sync_log`
  55. (
  56. `event` VARCHAR(50) NOT NULL,
  57. `last_sync_time` DATE NOT NULL,
  58. `is_success` TINYINT,
  59. `message` VARCHAR(50)
  60. )
  61. ;
  62. CREATE TABLE `muc_messages`
  63. (
  64. `id` INTEGER NOT NULL,
  65. `session_id` VARCHAR(50) NOT NULL,
  66. `sender_id` VARCHAR(50) NOT NULL,
  67. `content_type` INTEGER NOT NULL,
  68. `content` VARCHAR(1024),
  69. `timestamp` TIMESTAMP(0),
  70. CONSTRAINT `PK_messages` PRIMARY KEY (`id`)
  71. )
  72. ;
  73. CREATE TABLE `participants`
  74. (
  75. `session_id` VARCHAR(50) NOT NULL,
  76. `participaint_id` VARCHAR(50) NOT NULL,
  77. `member_type` INTEGER NOT NULL,
  78. `receiving` TINYINT,
  79. CONSTRAINT `PK_participants` PRIMARY KEY (`session_id`,`participaint_id`)
  80. )
  81. ;
  82. CREATE TABLE `sessions`
  83. (
  84. `id` VARCHAR(50) NOT NULL,
  85. `name` VARCHAR(50) NOT NULL,
  86. `type` INTEGER NOT NULL,
  87. `create_date` DATE NOT NULL,
  88. CONSTRAINT `PK_sessions` PRIMARY KEY (`id`)
  89. )
  90. ;
  91. CREATE TABLE `doctors`
  92. (
  93. `id` VARCHAR(50) NOT NULL,
  94. `name` VARCHAR(30) NOT NULL,
  95. `sex` INTEGER NOT NULL,
  96. `birthdate` DATE,
  97. `avatar` VARCHAR(255),
  98. `level` INTEGER NOT NULL,
  99. `last_sync_time` TIMESTAMP(0) NOT NULL,
  100. `locked` TINYINT NOT NULL,
  101. CONSTRAINT `PK_doctors` PRIMARY KEY (`id`)
  102. )
  103. ;
  104. CREATE TABLE `patients`
  105. (
  106. `id` VARCHAR(50) NOT NULL,
  107. `name` VARCHAR(30),
  108. `sex` INTEGER,
  109. `avatar` VARCHAR(255),
  110. `birthdate` DATE,
  111. `general_dr` VARCHAR(50),
  112. `health_dr` VARCHAR(50),
  113. CONSTRAINT `PK_users` PRIMARY KEY (`id`)
  114. )
  115. ;
  116. ALTER TABLE `topics`
  117. ADD INDEX `IXFK_topics_sessions` (`session_id` ASC)
  118. ;
  119. ALTER TABLE `p2p_messages`
  120. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  121. ;
  122. ALTER TABLE `p2p_messages`
  123. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  124. ;
  125. ALTER TABLE `group_messages`
  126. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  127. ;
  128. ALTER TABLE `group_messages`
  129. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  130. ;
  131. ALTER TABLE `muc_messages`
  132. ADD INDEX `IXFK_messages_participants` (`session_id` ASC,`sender_id` ASC)
  133. ;
  134. ALTER TABLE `muc_messages`
  135. ADD INDEX `IXFK_messages_sessions` (`session_id` ASC)
  136. ;
  137. ALTER TABLE `participants`
  138. ADD INDEX `IXFK_participants_doctors` (`participaint_id` ASC)
  139. ;
  140. ALTER TABLE `participants`
  141. ADD INDEX `IXFK_participants_patients` (`participaint_id` ASC)
  142. ;
  143. SET FOREIGN_KEY_CHECKS=1