앞서 배운 메타 관리의 전반적인 내용을 가지고 이제 테이블 생성을 하게 될 것입니다.
시나리오 :
주문 사이트에 거래처로 로그인하여
각 제품을 선택한 후 주문서 저장을 한다.(여러 제품 선택 가능)
최초 거래처가 주문서 작성 후 저장 시 제출 일시도 함께 테이블에 적재하도록 한다.
거래처는 주문건에 대해서 메시지를 남길 수 있고
관리자 또한 주문건에 대해서 메시지를 남길 수 있다.
거래처 프로세스
1. 주문서 저장 : 상태(저장)
-> 상품 선택 / 수량 선택
-> 저장 상태에선 주문서 수정이 가능하다.
-> 저장 상태에 취소가 가능하다.
-> 저장 상태에서 거래처 메시지를 남길 수 있다.
2. 주문서 수정 : 상태(저장)
-> 제출 상태에선 주문서 수정이 불가능하다.
3. 주문서 제출 : 상태(제출)
-> 제출 시 거래처 메시지 / 취소 / 저장이 불가하다.
관리자 프로세스
1. 제출 상태인 주문 건을 접수 처리한다.
-> 취소를 할 수 있다.(주문 취소 시 관리자 메시지는 필수 입력)
-> 관리자 메시지를 남길 수 있다.
2. 접수 처리된 주문 건을 배송 처리한다.
3. 배송 처리된 주문 건을 완료 처리한다.
주문 상태 정의 :
저장
제출
접수
배송
완료
취소
INSERT시 자동생성
데이터 등록일시
데이터 등록 아이디
데이터 수정 일시
데이터 수정 아이디
UPDATE 자동 입력 필드
데이터 수정 일시
데이터 수정 아이디
위의 요구사항을 분석하여 메타를 적용한 칼럼을 만들어 본다.
[주문 헤더]
주문번호
거래처아이디
주문상태코드
거래처주문제출일시
거래처주문수정일시
거래처주문취소일시
관리자주문접수일시
관리자주문접수아이디
관리자배송처리일시
관리자배송처리아이디
관리자완료처리일시
관리자완료처리아이디
관리자주문취소일시
관리자주문취소아이디
거래처메시지
관리자메시지
위 프로세스와 요구사항을 분석하여 주문 헤더 테이블을 만들었다.
모두 메타가 적용된 상태이며 칼럼의 맨 끝은 도메인으로 끝나게 된다.
https://kingsurvival.tistory.com/44?category=1121524
도메인 :
번호 / 코드 / 아이디 / 일시 / 메시지
오른쪽 빨간 박스는 칼럼에 등록이 안된 상태이므로 칼럼 등록도 시켜줘야 한다.
주문번호라는 칼럼은 번호로 끝난다.
주문 헤더 건수는 하루 5천 건 미만이라고 한다.
주문번호를 생성할 때 앞자리에 OH + 생성 날짜 + SEQ도 붙여 줄까 한다.
예시) OH2022103100001
이제 해당일자가 바뀔 때마다 00001만 초기화되게끔 만들어야겠지
다음날 : OH2022110100001 , OH2022110100002, OH2022110100003...
뒤 5자리는 주문번호라는 시퀀스를 만들고 매일 새벽에 시퀀스 초기화를 해주면 될 것 같다.
그래서 번호 varchar 30을 선택했다.
단어는 공통 표준 단어 관리에서 배웠다.
행정 표준 단어의 데이터를 참조해 구성한다.
https://kingsurvival.tistory.com/41?category=1121524
도메인을 제외한 단어를 뽑아 보자.
거래처, 관리자, 주문, 수정, 제출, 접수, 배송, 완료, 취소, 처리, 상태
단어 : 거래처
단축명 : CU
한글명 : 거래처
정의 : 사업을 할 때의 거래처
단어 : 주문
단축명 : ORDR
한글명 : 주문
정의 : 차례의 횟수
단어 : 관리자
단축명 : MNGR
한글명 : 관리자
정의 : 어떤 일을 맡아 관할하고 처리하는 사람
단어 : 배송
단축명 : DLVY
한글명 : 배송
정의 : 물자를 여러 곳에 나누어 보내 줌.
신규 칼럼 등록
칼럼명이 길어지는 게 싫으다면 주문 취소를 한 단어로 엮어도 된다.
관리자 완료처리 일시 같은 경우 완료라는 단어가 단어에 등록이 안되어서 그렇다.
단어등록
이제 완료라는 단어는 CPTN이라고 변환될 것이다.
테이블 생성
칼럼 관리는 공통 표준 칼럼 관리에서 배웠다.
https://kingsurvival.tistory.com/46?category=1121524
이제 위 새롭게 생성되는 칼럼을 등록해주도록 한다.
위처럼 칼럼까지 모두 등록해주고 다시 테이블 생성을 하게 된다면
아래와 같이 테이블 칼럼에 대해 공통 표준 단어+도메인(속성)까지 적용하여 테이블을 만들었다.
테이블 명도 메타가 적용된 것이다.
테이블 명명규칙 참조
https://kingsurvival.tistory.com/38?category=1121524
CREATE TABLE TB_ODOD_MA
(
ORDR_NO character varying(30) /* 주문번호 */
, CU_ID character varying(30) /* 거래처아이디 */
, ORDR_STT_CD character varying(2) /* 주문상태코드 */
, CU_ORDR_SUBM_DTTM timestamp /* 거래처주문제출일시 */
, CU_ORDR_MDF_DTTM timestamp /* 거래처주문수정일시 */
, CU_ORDR_CANCL_DTTM timestamp /* 거래처주문취소일시 */
, MNGR_ORDR_RCEPT_DTTM timestamp /* 관리자주문접수일시 */
, MNGR_ORDR_RCEPT_ID character varying(30) /* 관리자주문접수아이디 */
, MNGR_DLVP_LI_DTTM timestamp /* 관리자배송처리일시 */
, MNGR_DLVP_LI_ID character varying(30) /* 관리자배송처리아이디 */
, MNGR_CPTN_PRS_DTTM timestamp /* 관리자완료처리일시 */
, MNGR_CPTN_PRS_ID character varying(30) /* 관리자완료처리아이디 */
, MNGR_ORDR_CANCL_DTTM timestamp /* 관리자주문취소일시 */
, MNGR_ORDR_CANCL_ID character varying(30) /* 관리자주문취소아이디 */
, CU_MSGE character varying(4000) /* 거래처메시지 */
, MNGR_MSGE character varying(4000) /* 관리자메시지 */
, DATA_REG_DTTM timestamp /* 데이터등록일시 */
, DATA_MDF_DTTM timestamp /* 데이터수정일시 */
, DATA_REG_ID character varying(30) /* 데이터등록아이디 */
, DATA_MDF_ID character varying(30) /* 데이터수정아이디 */
, CONSTRAINT PK_TB_ODOD_MA_WPV PRIMARY KEY (ORDR_NO)
);
COMMENT ON TABLE TB_ODOD_MA IS '주문헤더';
COMMENT ON COLUMN TB_ODOD_MA.ORDR_NO IS '주문번호';
COMMENT ON COLUMN TB_ODOD_MA.CU_ID IS '거래처아이디';
COMMENT ON COLUMN TB_ODOD_MA.ORDR_STT_CD IS '주문상태코드';
COMMENT ON COLUMN TB_ODOD_MA.CU_ORDR_SUBM_DTTM IS '거래처주문제출일시';
COMMENT ON COLUMN TB_ODOD_MA.CU_ORDR_MDF_DTTM IS '거래처주문수정일시';
COMMENT ON COLUMN TB_ODOD_MA.CU_ORDR_CANCL_DTTM IS '거래처주문취소일시';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_ORDR_RCEPT_DTTM IS '관리자주문접수일시';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_ORDR_RCEPT_ID IS '관리자주문접수아이디';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_DLVP_LI_DTTM IS '관리자배송처리일시';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_DLVP_LI_ID IS '관리자배송처리아이디';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_CPTN_PRS_DTTM IS '관리자완료처리일시';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_CPTN_PRS_ID IS '관리자완료처리아이디';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_ORDR_CANCL_DTTM IS '관리자주문취소일시';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_ORDR_CANCL_ID IS '관리자주문취소아이디';
COMMENT ON COLUMN TB_ODOD_MA.CU_MSGE IS '거래처메시지';
COMMENT ON COLUMN TB_ODOD_MA.MNGR_MSGE IS '관리자메시지';
COMMENT ON COLUMN TB_ODOD_MA.DATA_REG_DTTM IS '데이터등록일시';
COMMENT ON COLUMN TB_ODOD_MA.DATA_MDF_DTTM IS '데이터수정일시';
COMMENT ON COLUMN TB_ODOD_MA.DATA_REG_ID IS '데이터등록아이디';
COMMENT ON COLUMN TB_ODOD_MA.DATA_MDF_ID IS '데이터수정아이디';
여기서 한 가지 주문 상태 코드는 코드이기 때문에 코드로 관리되어야 한다.
코드 관리는 공통 표준코드 관리에서 배웠다.
https://kingsurvival.tistory.com/47?category=1121524
TB_CODE_MA(코드마스터)
ORDR_STT_CD (주문 상태) 추가
코드 아이디 : OD30
코드 칼럼명 : ORDR_STT_CD
한글명 : 주문 상태 코드
코드 정의 : 주문처리상태를 의미한다.
10 : 저장 , 20: 제출, 30: 접수, 40:배송, 50:완료, 99:취소
TB_CODE_DT(코드 상세)
코드아이디 | 코드 | 코드값 | 코드값정의 | 순서 | 사용 |
OD30 | 10 | 저장 | 저장 | 10 | Y |
OD30 | 20 | 제출 | 제출 | 20 | Y |
OD30 | 30 | 접수 | 접수 | 30 | Y |
OD30 | 40 | 배송 | 배송 | 40 | Y |
OD30 | 50 | 완료 | 완료 | 50 | Y |
OD30 | 99 | 취소 | 취소 | 60 | Y |
여기까지 잘 따라오셨다면 당신은 이미 메타 마스터 이제 배운 걸로 메타 시스템을 구축하여 프로젝트에 적용해보도록 하자.
다음 시간엔 메타를 적용한 프로젝트 + 데이터베이스 + 테이블 + 문서까지 총망라하여 배워보도록 하자.
오늘도 보람찬 생존 ^.^
'개발관련 가이드 > 메타데이터' 카테고리의 다른 글
메타관리(공공데이터 공통표준코드관리) (0) | 2022.10.19 |
---|---|
메타관리(공공데이터 공통표준컬럼관리) (0) | 2022.10.13 |
메타관리(공공데이터 공통표준도메인) (2) | 2022.10.07 |
메타관리(공공데이터 공통표준용어) (0) | 2022.09.27 |
메타관리(프로젝트폴더명명규칙_05) (2) | 2022.09.23 |
댓글