maria_create_table.sql 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. ######################################################################################################
  2. CREATE TABLE MP_API_CATEGORY
  3. (
  4. CAT_SEQ INT COMMENT '시퀀스',
  5. CAT_NAME VARCHAR(255) COMMENT '카테고리명',
  6. CAT_DESC VARCHAR(500) COMMENT '설명',
  7. PARENT_CAT_SEQ INT COMMENT '부모 시퀀스',
  8. PATH_NAME VARCHAR(255) COMMENT '카테고리 경로',
  9. CREATE_DT DATETIME COMMENT '생성일시',
  10. CREATE_ID VARCHAR(255) COMMENT '생성자',
  11. UPDATE_DT DATETIME COMMENT '수정일시',
  12. UPDATE_ID VARCHAR(255) COMMENT '수정한 사람',
  13. CONSTRAINT PK_MP_API_CATEGORY PRIMARY KEY (CAT_SEQ),
  14. CONSTRAINT UQ_API_CAT_PATH_NAME UNIQUE(PATH_NAME)
  15. ) COMMENT 'API를 묶어주는 카테고리';
  16. CREATE TABLE MP_API
  17. (
  18. API_SEQ INT COMMENT '시퀀스',
  19. API_TYPE VARCHAR(50) COMMENT '유형 (SQL, WEB SERVICE..)',
  20. DATA_SOURCE_NAME VARCHAR(255) COMMENT 'SQL타입인 경우 사용할 DataSource명',
  21. API_DESC VARCHAR(500) COMMENT '설명',
  22. HTTP_METHOD_TYPE VARCHAR(50) COMMENT 'HTTP통신이 사용되는 경우 메소드 유형 (GET/PUT/POST/DELETE)',
  23. API_NAME VARCHAR(255) COMMENT '이름',
  24. TARGET_NAME VARCHAR(255) COMMENT '프로시저명',
  25. QUERY_MSG VARCHAR(2048) COMMENT 'DB연동인 경우 질의문',
  26. RESULT_TYPE VARCHAR(50) COMMENT '결과유형 (MAP, LIST, INT..)',
  27. REQ_URL_ADDR VARCHAR(1024) COMMENT '요청과 맵핑되는 주소 (category가 제외된 형태)',
  28. TARGET_URL_ADDR VARCHAR(1024) COMMENT 'HTTP 통신인 경우, API가 호출해야 하는 상대편 웹 서비스 주소 (파라미터 포함)',
  29. RES_SAMPLE_CL VARCHAR(4000) COMMENT '응답샘플',
  30. CAT_SEQ INT COMMENT 'API가 어느 카테고리에 포함되는지 시퀀스',
  31. CAT_PATH_NAME VARCHAR(255) COMMENT 'API가 포함되는 카테고리 경로명 (반정규화)',
  32. CREATE_DT DATETIME COMMENT '생성일시',
  33. CREATE_ID VARCHAR(255) COMMENT '생성자',
  34. UPDATE_DT DATETIME COMMENT '수정일시',
  35. UPDATE_ID VARCHAR(255) COMMENT '수정한 사람',
  36. CONSTRAINT PK_MP_API PRIMARY KEY (API_SEQ),
  37. CONSTRAINT FK_API_CAT_SEQ FOREIGN KEY (CAT_SEQ) REFERENCES MP_API_CATEGORY (CAT_SEQ)
  38. ) COMMENT 'API정보';
  39. CREATE TABLE MP_API_HEADER
  40. (
  41. HEADER_SEQ INT COMMENT '시퀀스',
  42. API_SEQ INT COMMENT '참조 API의 시퀀스',
  43. HEADER_NAME VARCHAR(255) COMMENT '헤더명',
  44. HEADER_VALUE VARCHAR(255) COMMENT '헤더값',
  45. CONSTRAINT FK_API_HEADER_API_SEQ FOREIGN KEY (API_SEQ) REFERENCES MP_API (API_SEQ)
  46. ) COMMENT 'API 헤더 정보';
  47. CREATE TABLE MP_API_PARAM
  48. (
  49. PARAM_SEQ INT COMMENT '시퀀스',
  50. API_SEQ INT COMMENT '참조 API 의 시퀀스',
  51. DATA_TYPE VARCHAR(50) COMMENT '파라미터의 데이터 타입',
  52. PARAM_DESC VARCHAR(500) COMMENT '설명',
  53. PARAM_NAME VARCHAR(255) COMMENT '이름',
  54. SAMPLE_VALUE VARCHAR(4000) COMMENT '샘플 값',
  55. CONSTRAINT FK_API_PARAM_API_SEQ FOREIGN KEY (API_SEQ) REFERENCES MP_API (API_SEQ)
  56. ) COMMENT 'API 파라미터 정보';
  57. ######################################################################################################
  58. CREATE TABLE MP_MENU
  59. (
  60. MENU_SEQ INT COMMENT '시퀀스',
  61. MENU_ID VARCHAR(255) COMMENT '식별자',
  62. PARENT_MENU_ID VARCHAR(255) COMMENT '부모메뉴 식별자',
  63. MENU_ORDER INT COMMENT '표시순서',
  64. MENU_TYPE VARCHAR(50) DEFAULT 'MAIN' COMMENT '메뉴 유형 (NAVI, SIDE, CONT..)',
  65. MENU_NAME VARCHAR(255) COMMENT '메뉴명 (사용자가 보는 text)',
  66. ENABLED_YN CHAR(1) DEFAULT 'N' COMMENT '사용되는지 여부',
  67. ACCESS_URI_ADDR VARCHAR(1024) COMMENT '접근주소',
  68. IMAGE_URI_ADDR VARCHAR(1024) COMMENT '이미지 주소',
  69. MENU_DESC VARCHAR(500) COMMENT '설명',
  70. CONSTRAINT PK_MP_MENU PRIMARY KEY (MENU_ID),
  71. CONSTRAINT UQ_MENU_SEQ_ID UNIQUE (MENU_SEQ, MENU_ID)
  72. ) COMMENT '메뉴 정보';
  73. CREATE TABLE MP_MENU_PARAM
  74. (
  75. MENU_PARAM_SEQ INT COMMENT '파라미터 SEQ',
  76. MENU_ID VARCHAR(255) COMMENT '메뉴 ID',
  77. PARAM_NAME VARCHAR(255) NOT NULL COMMENT '파라미터명',
  78. DATA_TYPE VARCHAR(50) NOT NULL COMMENT '데이터 타입',
  79. PARAM_VALUE VARCHAR(4000) COMMENT '파리미터 값',
  80. PARAM_DESC VARCHAR(500) COMMENT '파라미터 설명',
  81. CONSTRAINT FK_PARAM_MENU_ID FOREIGN KEY(MENU_ID) REFERENCES MP_MENU(MENU_ID),
  82. CONSTRAINT UQ_PARAM_PARAM_NAME UNIQUE (MENU_ID, PARAM_NAME)
  83. ) COMMENT '메뉴 파라미터 정보';
  84. CREATE TABLE MP_I18N
  85. (
  86. MENU_ID VARCHAR(255) COMMENT '메뉴 ID',
  87. I18N_CD CHAR(2) COMMENT '언어코드',
  88. CD_TEXT VARCHAR(255) COMMENT '문자열',
  89. CONSTRAINT UQ_I18N_MENU_ID_I18N_CD UNIQUE (MENU_ID, I18N_CD),
  90. CONSTRAINT FK_I18N_MENU_ID FOREIGN KEY (MENU_ID) REFERENCES MP_MENU (MENU_ID)
  91. ) COMMENT '메뉴에 적용되는 다국어 정보';
  92. ######################################################################################################
  93. CREATE TABLE MP_MANAGER
  94. (
  95. USER_ID VARCHAR(255) COMMENT '로그인 ID',
  96. USER_NAME VARCHAR(255) COMMENT '이름',
  97. ENABLED_YN CHAR(1) DEFAULT 'N' COMMENT '활성화 여부',
  98. DEPT_NAME VARCHAR(255) COMMENT '소속',
  99. PWD_VALUE VARCHAR(255) COMMENT '로그인 암호',
  100. CREATE_DT DATETIME COMMENT '생성일시',
  101. CREATE_ID VARCHAR(255) COMMENT '생성자',
  102. UPDATE_DT DATETIME COMMENT '수정일시',
  103. UPDATE_ID VARCHAR(255) COMMENT '수정한 사람',
  104. CONSTRAINT PK_MP_MANAGER PRIMARY KEY (USER_ID)
  105. ) COMMENT '관리자 계정';
  106. CREATE TABLE MP_TELNO
  107. (
  108. TELNO_SEQ INT COMMENT '시퀀스',
  109. BUILDING_DESC VARCHAR(500) COMMENT '건물',
  110. ROOM_DESC VARCHAR(500) COMMENT '건물내의 방',
  111. TEL_VALUE VARCHAR(255) COMMENT '전화번호',
  112. TELNO_ORDER INT DEFAULT 1 COMMENT '표시순서'
  113. ) COMMENT '병원 전화번호';
  114. CREATE TABLE MP_VERSION
  115. (
  116. PLATFORM_TYPE VARCHAR(50) COMMENT '플랫폼 유형',
  117. CERT_TYPE VARCHAR(50) DEFAULT 'InHouse' COMMENT '인증유형 구분 (InHouse, AppStore 등..)',
  118. VERSION_ORDER INT COMMENT '현재 최신버전. 이 버전보다 이전 버전들은 업데이트를 해야함. 이후버전(지금 심사중인 버전)들은 안해도됨.',
  119. APP_NAME VARCHAR(255) COMMENT '배포된 이름',
  120. MARKET_URL VARCHAR(1024) COMMENT '앱을 다운로드 받기 위한 마켓 주소',
  121. CONSTRAINT UQ_MP_VERSION UNIQUE (PLATFORM_TYPE, CERT_TYPE, APP_NAME)
  122. ) COMMENT '앱 버전정보';
  123. CREATE TABLE MP_USER
  124. (
  125. USER_SEQ INT COMMENT '시퀀스',
  126. USER_ID VARCHAR(255) COMMENT '사용자 ID',
  127. USER_NAME VARCHAR(255) COMMENT '사용자 이름',
  128. LOGIN_FAIL_CNT INT COMMENT '로그인 실패 횟수',
  129. PASSWORD_VALUE VARCHAR(255) COMMENT '로그인 암호 (sha-256)',
  130. PASSWORD_UPDATE_DT DATETIME COMMENT '패스워드 업데이트 일시',
  131. REGISTER_DT DATETIME COMMENT '등록일시',
  132. LOCAL_CIPHER_KEY_VALUE VARCHAR(255) COMMENT '기기 로컬 암호화 키',
  133. USE_ATTR_ORDER INT COMMENT '사용자가 선택한 속성 순서',
  134. CONSTRAINT PK_USER_ID PRIMARY KEY (USER_ID)
  135. ) COMMENT '사용자 정보';
  136. CREATE TABLE MP_AGREEMENT
  137. (
  138. AGREEMENT_SEQ INT COMMENT '시퀀스',
  139. AGREEMENT_ORDER INT COMMENT '동의서 순서',
  140. AGREEMENT_NAME VARCHAR(255) NOT NULL COMMENT '동의서 이름',
  141. AGREEMENT_CL VARCHAR(8000) NOT NULL COMMENT '동의서 내용',
  142. AGREEMENT_ID VARCHAR(255) COMMENT '동의서 식별자',
  143. TYPE_NAME VARCHAR(255) NOT NULL COMMENT '동의서유형(ALL, MINOR). 현재는 일반/미성년자만 있지만 조만간 외국인도 생길듯하여 NAME으로함',
  144. VERSION_NUMBER INT COMMENT '동의서 버전 ',
  145. REQUIRED_YN CHAR(1) DEFAULT 'N' COMMENT '필수 여부',
  146. ENABLED_YN CHAR(1) DEFAULT 'N' COMMENT '활성화 여부',
  147. NEW_YN CHAR(1) DEFAULT 'Y' COMMENT '최신 동의서 여부',
  148. CONSTRAINT PK_AGREEMENT_SEQ PRIMARY KEY (AGREEMENT_SEQ)
  149. ) COMMENT '서비스 약관(동의서) 정보';
  150. CREATE TABLE MP_USER_AGREEMENT
  151. (
  152. USER_AGREEMENT_SEQ INT COMMENT '시퀀스',
  153. AGREEMENT_SEQ INT NOT NULL COMMENT '동의서 시퀀스',
  154. AGREEMENT_ID VARCHAR(255) NOT NULL COMMENT '동의서 ID',
  155. USER_ID VARCHAR(255) NOT NULL COMMENT '사용자 ID',
  156. AGREEMENT_YN CHAR(1) DEFAULT 'N' COMMENT '동의여부 (Y/N)',
  157. REGISTER_DT DATETIME COMMENT '등록일시',
  158. CONSTRAINT PK_USER_AGREEMENT_SEQ PRIMARY KEY (USER_AGREEMENT_SEQ),
  159. CONSTRAINT FK_USER_AGREEMENT_SEQ FOREIGN KEY (AGREEMENT_SEQ) REFERENCES MP_AGREEMENT(AGREEMENT_SEQ),
  160. CONSTRAINT FK_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES MP_USER(USER_ID)
  161. ) COMMENT '서비스 약관(동의서) 동의여부';
  162. CREATE TABLE MP_LOG
  163. (
  164. LOG_TYPE VARCHAR(20) COMMENT '로그 구분',
  165. USER_ID VARCHAR(20) COMMENT '사용자 아이디',
  166. USER_NAME VARCHAR(30) COMMENT '사용자 이름',
  167. DEPT_NAME VARCHAR(100) COMMENT '부서명',
  168. TITLE VARCHAR(100) COMMENT '제목',
  169. CONTENT VARCHAR(1024) COMMENT '내용',
  170. CONTENT2 VARCHAR(1024) COMMENT '내용2',
  171. CONTENT3 VARCHAR(1024) COMMENT '내용3',
  172. CREATE_DT DATETIME COMMENT '생성일시',
  173. CONSTRAINT PK_MP_LOG PRIMARY KEY (USER_ID, CREATE_DT, TITLE)
  174. ) COMMENT 'LOG';
  175. ######################################################################################################
  176. CREATE TABLE MP_PUSH_FORM (
  177. FORM_ID VARCHAR(255) COMMENT '메시지 형식에 대한 식별자',
  178. FORM_TYPE VARCHAR(50) COMMENT '유형 : PAGE, MAP, GUIDE',
  179. USE_YN CHAR(1) COMMENT '사용여부 (PUSH_MSG쪽에서 FK로 참조될꺼라서 삭제기능이 없을것임)',
  180. MENU_ID VARCHAR(255) COMMENT '유형이 PAGE인 경우 메뉴 식별자. 확장자가 page인 메뉴만 가능',
  181. INCLUDE_NAME_YN CHAR(1) COMMENT '메시지에 이름포함 여부',
  182. FORM_DESC VARCHAR(500) COMMENT '형식에 대한 설명',
  183. REG_DT DATETIME COMMENT '추가된 시간' DEFAULT CURRENT_TIMESTAMP,
  184. CONSTRAINT PK_MP_PUSH_FORM PRIMARY KEY (FORM_ID),
  185. CONSTRAINT FK_PUSH_FORM_MENU_ID FOREIGN KEY (MENU_ID) REFERENCES MP_MENU (MENU_ID)
  186. ) COMMENT '사용자에게 전송될 메시지 형식';
  187. CREATE TABLE MNS_CONTENTS
  188. (
  189. CONTENTS_SEQ INT COMMENT '시퀀스',
  190. CONTENTS_MSG VARCHAR(4000) NOT NULL COMMENT '메시지 내용',
  191. SENDER_ID VARCHAR(100) NOT NULL COMMENT '발송자아이디',
  192. CREATE_DT DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '레코드 등록일시',
  193. RESERVE_SEND_DT DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '예약전송일시',
  194. CONSTRAINT PK_MNS_CONTENTS PRIMARY KEY (CONTENTS_SEQ)
  195. ) COMMENT '전송될 메시지 정보';
  196. CREATE TABLE MNS_CONTENTS_RESULT
  197. (
  198. CONTENTS_SEQ INT COMMENT '발송순서',
  199. COMPLETE_DT DATETIME NOT NULL COMMENT '전체 수신자에 대한 발송완료 일시',
  200. CONSTRAINT FK_CONTENTS_SEQ FOREIGN KEY (CONTENTS_SEQ) REFERENCES MNS_CONTENTS (CONTENTS_SEQ),
  201. CONSTRAINT UQ_CONTENTS_SEQ UNIQUE (CONTENTS_SEQ)
  202. ) COMMENT '메시지 전송결과';
  203. CREATE TABLE MNS_RECEIVER
  204. (
  205. CONTENTS_SEQ INT COMMENT '발송순서',
  206. RECEIVER_ID VARCHAR(255) NOT NULL COMMENT '수신자 아이디',
  207. CONSTRAINT FK_RC_CONTENTS_SEQ FOREIGN KEY (CONTENTS_SEQ) REFERENCES MNS_CONTENTS (CONTENTS_SEQ),
  208. CONSTRAINT UQ_RC_CONTENTS_SEQ_RECEIVER_ID UNIQUE (CONTENTS_SEQ, RECEIVER_ID)
  209. ) COMMENT '메시지 수신자';
  210. CREATE TABLE MNS_RECEIVER_RESULT
  211. (
  212. CONTENTS_SEQ INT COMMENT '발송순서',
  213. RECEIVER_ID VARCHAR(255) COMMENT '수신자 아이디',
  214. DEVICE_TOKEN_ID VARCHAR(255) COMMENT '토큰',
  215. PLATFORM_TYPE VARCHAR(50) COMMENT '플랫폼 구분',
  216. SEND_DT DATETIME NOT NULL COMMENT '발송일시',
  217. SUCCESS_YN CHAR(1) NOT NULL COMMENT '발송 성공여부',
  218. ERROR_TYPE VARCHAR(50) COMMENT '발송실패 에러응답코드',
  219. DELETE_YN CHAR(1) COMMENT '메시지 삭제여부(삭제예정필드)',
  220. READ_YN CHAR(1) COMMENT '메시지 읽음여부(삭제예정필드)',
  221. CONSTRAINT FK_CONTENTS_SEQ_RECEIVER_ID FOREIGN KEY (CONTENTS_SEQ, RECEIVER_ID) REFERENCES MNS_RECEIVER (CONTENTS_SEQ, RECEIVER_ID)
  222. ) COMMENT '메시지 수신자별 전송결과';
  223. CREATE TABLE MP_MNS_MSGMAPPING
  224. (
  225. USER_ID VARCHAR(255) NOT NULL COMMENT '사용자 ID (검색용)',
  226. CONTENTS_SEQ INT NOT NULL COMMENT 'PUSH 메시지 구분자',
  227. FORM_ID VARCHAR(255) NOT NULL COMMENT '메시지 유형',
  228. MESSAGE_VALUE VARCHAR(255) NOT NULL COMMENT '메시지 본문 내용',
  229. LOG_DT DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '로그 남기는 시간'
  230. ) COMMENT '메시지 추적을 위한 맵핑정보';
  231. CREATE INDEX IDX_MSGMAPPING_CONTENTS ON MP_MNS_MSGMAPPING(USER_ID);
  232. CREATE TABLE MP_USER_DEVICE
  233. (
  234. DEVICE_SEQ INT COMMENT '사용자 Device SEQ',
  235. USER_ID VARCHAR(255) NOT NULL COMMENT '사용자 ID',
  236. DEVICE_ID VARCHAR(255) NOT NULL COMMENT 'Device ID',
  237. DEVICE_MODEL VARCHAR(255) NOT NULL COMMENT 'Device Model(iPhone6s, 갤럭시s6)',
  238. DEVICE_TYPE VARCHAR(255) NOT NULL COMMENT 'Device Type (iOS, android)',
  239. DEVICE_ALIAS VARCHAR(255) NOT NULL COMMENT '사용자 장비 별칭',
  240. CONSTRAINT FK_MP_USER_DEVICE_USER_ID FOREIGN KEY (USER_ID) REFERENCES MP_USER(USER_ID),
  241. CONSTRAINT UQ_MP_USER_DEVICE UNIQUE (USER_ID, DEVICE_ID)
  242. ) COMMENT '사용자 Device';
  243. CREATE TABLE MP_PUBLIC_DEVICE
  244. (
  245. PUBLICE_DEVICE_SEQ INT COMMENT '공용 Device SEQ',
  246. DEVICE_ID VARCHAR(255) NOT NULL COMMENT 'Device ID',
  247. DEVICE_MODEL VARCHAR(255) NOT NULL COMMENT 'Device Model(iPhone6s, 갤럭시s6)',
  248. DEVICE_TYPE VARCHAR(255) NOT NULL COMMENT 'Device Type (iOS, android)',
  249. DEVICE_ALIAS VARCHAR(255) NOT NULL COMMENT '공용 장비 별칭',
  250. CONSTRAINT UQ_MP_PUBLICE_DEVICE UNIQUE (DEVICE_ID)
  251. ) COMMENT '공용 Device';
  252. ######################################################################################################
  253. CREATE TABLE MP_ATTR
  254. (
  255. ATTR_SEQ INT COMMENT '업무 속성 SEQ',
  256. ATTR_TYPE VARCHAR(20) NOT NULL COMMENT '업무 속성 타입',
  257. ATTR_ID VARCHAR(255) NOT NULL COMMENT '업무 속성 ID',
  258. ATTR_NAME VARCHAR(255) NOT NULL COMMENT '업무 속성 이름',
  259. UPPER_ATTR VARCHAR(255) DEFAULT 'none',
  260. CONSTRAINT UQ_MP_ATTR UNIQUE (ATTR_TYPE, ATTR_ID)
  261. ) COMMENT '업무 속성';
  262. CREATE TABLE MP_USER_ATTR
  263. (
  264. USER_ATTR_SEQ INT COMMENT '사용자 업무 SEQ',
  265. USER_ATTR_ORDER INT NOT NULL COMMENT '사용자 업무 우선순위',
  266. USER_ID VARCHAR(255) NOT NULL COMMENT '사용자 ID',
  267. HOSPITAL_ID VARCHAR(255) NOT NULL COMMENT '소속 ID',
  268. DUTY_ID VARCHAR(255) NOT NULL COMMENT '직무 ID',
  269. WORK_ID VARCHAR(255) NOT NULL COMMENT '업무 ID',
  270. CONSTRAINT PK_USER_ATTR_SEQ PRIMARY KEY (USER_ATTR_SEQ),
  271. CONSTRAINT FK_USER_ATTR_USER_ID FOREIGN KEY (USER_ID) REFERENCES MP_USER(USER_ID),
  272. CONSTRAINT UQ_MP_USER_ATTR UNIQUE (USER_ID, HOSPITAL_ID, DUTY_ID, WORK_ID),
  273. CONSTRAINT UQ_MP_USER_ATTR_ORDER UNIQUE(USER_ID, USER_ATTR_ORDER )
  274. ) COMMENT '사용자 업무 테이블';
  275. CREATE TABLE MP_EXTRA_ATTR
  276. (
  277. EXTRA_ATTR_SEQ INT COMMENT '업무 SEQ',
  278. EXTRA_ATTR_ID VARCHAR(255) NOT NULL COMMENT '확장 업무 ID',
  279. EXTRA_ATTR_NAME VARCHAR(255) NOT NULL COMMENT '확장 업무 이름',
  280. EXTRA_ATTR_DESC VARCHAR(500) COMMENT '확장 업무 설명',
  281. CONSTRAINT PK_EXTRA_WORK_ID PRIMARY KEY (EXTRA_ATTR_ID),
  282. CONSTRAINT UQ_MP_EXTRA_ATTR UNIQUE (EXTRA_ATTR_ID, EXTRA_ATTR_NAME)
  283. ) COMMENT '확장 속성';
  284. CREATE TABLE MP_EXTRA_ATTR_USER
  285. (
  286. EXTRA_ATTR_USER_SEQ INT COMMENT '확장 업무 사용자 SEQ',
  287. EXTRA_ATTR_ID VARCHAR(255) NOT NULL COMMENT '확장 업무 ID',
  288. USER_ID VARCHAR(255) NOT NULL COMMENT '확장 업무 사용자 ID',
  289. EXTRA_ATTR_USER_ORDER INT COMMENT '확장 업무 사용자 순서 (SEQ나 ORDER 둘중에 하나 삭제해도 될것같다)',
  290. CONSTRAINT PK_EXTRA_ATTR_USER_SEQ PRIMARY KEY (EXTRA_ATTR_USER_SEQ),
  291. CONSTRAINT FK_EXTRA_ATTR_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES MP_USER(USER_ID),
  292. CONSTRAINT FK_EXTRA_ATTR_ID FOREIGN KEY (EXTRA_ATTR_ID) REFERENCES MP_EXTRA_ATTR(EXTRA_ATTR_ID)
  293. ) COMMENT '확장 업무 사용자';
  294. CREATE TABLE MP_AUTH
  295. (
  296. AUTH_SEQ INT COMMENT '권한 SEQ',
  297. AUTH_ID VARCHAR(255) NOT NULL COMMENT '권한 ID',
  298. AUTH_NAME VARCHAR(255) NOT NULL COMMENT '권한 이름',
  299. AUTH_DESC VARCHAR(500) COMMENT '권한 설명',
  300. CONSTRAINT PK_AUTH_ID PRIMARY KEY (AUTH_ID),
  301. CONSTRAINT UQ_MP_AUTH UNIQUE (AUTH_ID, AUTH_NAME)
  302. ) COMMENT '권한';
  303. CREATE TABLE MP_AUTH_ATTR
  304. (
  305. AUTH_ATTR_SEQ INT COMMENT '권한 속성 SEQ',
  306. AUTH_ID VARCHAR(255) NOT NULL COMMENT '권한 ID',
  307. AUTH_TYPE VARCHAR(255) NOT NULL COMMENT '권한 타입 (ADD, MINUS)',
  308. AUTH_ATTR_TYPE VARCHAR(255) NOT NULL COMMENT '권한 속성 타입',
  309. AUTH_ATTR_ID VARCHAR(255) NOT NULL COMMENT '권한 속성 ID',
  310. CONSTRAINT FK_AUTH_ID FOREIGN KEY (AUTH_ID) REFERENCES MP_AUTH(AUTH_ID)
  311. ) COMMENT '권한 속성';
  312. CREATE INDEX MP_AUTH_ATTR_IDX1 ON MP_AUTH_ATTR(AUTH_ATTR_ID, AUTH_ATTR_TYPE, AUTH_TYPE);
  313. CREATE TABLE MP_MENU_AUTH
  314. (
  315. MENU_AUTH_SEQ INT COMMENT '메뉴 권한 SEQ',
  316. MENU_ID VARCHAR(255) NOT NULL COMMENT '메뉴 ID',
  317. AUTH_ID VARCHAR(255) NOT NULL COMMENT '권한 ID',
  318. CONSTRAINT FK_MENU_AUTH_MENU_ID FOREIGN KEY (MENU_ID) REFERENCES MP_MENU(MENU_ID),
  319. CONSTRAINT FK_MENU_AUTH_AUTH_ID FOREIGN KEY (AUTH_ID) REFERENCES MP_AUTH(AUTH_ID),
  320. CONSTRAINT UQ_MP_MENU_AUTH UNIQUE (MENU_ID, AUTH_ID)
  321. ) COMMENT '메뉴 권한 속성';
  322. ######################################################################################################
  323. CREATE TABLE `mplus`.`sequence_data` (
  324. `sequence_name` varchar(100) NOT NULL,
  325. `sequence_increment` int(11) unsigned NOT NULL DEFAULT 1,
  326. `sequence_min_value` int(11) unsigned NOT NULL DEFAULT 1,
  327. `sequence_max_value` bigint(20) unsigned NOT NULL DEFAULT 18446744073709551615,
  328. `sequence_cur_value` bigint(20) unsigned DEFAULT 1,
  329. `sequence_cycle` boolean NOT NULL DEFAULT FALSE,
  330. PRIMARY KEY (`sequence_name`)
  331. );
  332. DELIMITER $$
  333. CREATE FUNCTION `nextval` (`seq_name` varchar(100))
  334. RETURNS bigint(20) NOT DETERMINISTIC
  335. BEGIN
  336. DECLARE cur_val bigint(20);
  337. SELECT
  338. sequence_cur_value INTO cur_val
  339. FROM
  340. mplus.sequence_data
  341. WHERE
  342. sequence_name = seq_name
  343. ;
  344. IF cur_val IS NOT NULL THEN
  345. UPDATE
  346. mplus.sequence_data
  347. SET
  348. sequence_cur_value = IF (
  349. (sequence_cur_value + sequence_increment) > sequence_max_value,
  350. IF (
  351. sequence_cycle = TRUE,
  352. sequence_min_value,
  353. NULL
  354. ),
  355. sequence_cur_value + sequence_increment
  356. )
  357. WHERE
  358. sequence_name = seq_name
  359. ;
  360. END IF;
  361. RETURN cur_val;
  362. END$$
  363. insert into sequence_data (sequence_name) values ('SEQ_MP_API_CATEGORY_CS');
  364. insert into sequence_data (sequence_name) values ('SEQ_MP_API_AS');
  365. insert into sequence_data (sequence_name) values ('SEQ_MP_API_HEADER_HS');
  366. insert into sequence_data (sequence_name) values ('SEQ_MP_API_PARAM_PS');
  367. insert into sequence_data (sequence_name) values ('SEQ_MP_MENU');
  368. insert into sequence_data (sequence_name) values ('SEQ_MP_MENU_PARAM_SEQ_MPS');
  369. insert into sequence_data (sequence_name) values ('SEQ_MP_TELNO_TS');
  370. insert into sequence_data (sequence_name) values ('SEQ_MP_AGREEMENT');
  371. insert into sequence_data (sequence_name) values ('SEQ_MP_USER_AGREEMENT_UA');
  372. insert into sequence_data (sequence_name) values ('SEQ_MP_USER_US');
  373. insert into sequence_data (sequence_name) values ('SEQ_MNS_CONTENTS');
  374. insert into sequence_data (sequence_name) values ('SEQ_MP_USER_DEVICE');
  375. insert into sequence_data (sequence_name) values ('SEQ_MP_PUBLIC_DEVICE');
  376. insert into sequence_data (sequence_name) values ('SEQ_MP_ATTR');
  377. insert into sequence_data (sequence_name) values ('SEQ_MP_USER_ATTR');
  378. insert into sequence_data (sequence_name) values ('SEQ_MP_EXTRA_ATTR');
  379. insert into sequence_data (sequence_name) values ('SEQ_MP_EXTRA_ATTR_USER');
  380. insert into sequence_data (sequence_name) values ('SEQ_MP_AUTH');
  381. insert into sequence_data (sequence_name) values ('SEQ_MP_AUTH_ATTR');
  382. insert into sequence_data (sequence_name) values ('SEQ_MP_MENU_AUTH');