본문 바로가기
개발관련 가이드/메타데이터

메타관리(테이블생성)

by 베어그릴스 2022. 10. 31.
반응형

앞서 배운 메타 관리의 전반적인 내용을 가지고 이제 테이블 생성을 하게 될 것입니다.

 

시나리오 : 

주문 사이트에 거래처로 로그인하여

각 제품을 선택한 후 주문서 저장을 한다.(여러 제품 선택 가능)

최초 거래처가 주문서 작성 후 저장 시 제출 일시도 함께 테이블에 적재하도록 한다.

거래처는 주문건에 대해서 메시지를 남길 수 있고

관리자 또한 주문건에 대해서 메시지를 남길 수 있다.

 

거래처 프로세스

1. 주문서 저장 : 상태(저장)

-> 상품 선택 / 수량 선택

-> 저장 상태에선 주문서 수정이 가능하다.

-> 저장 상태에 취소가 가능하다.

-> 저장 상태에서 거래처 메시지를 남길 수 있다.

2. 주문서 수정 : 상태(저장)

-> 제출 상태에선 주문서 수정이 불가능하다.

3. 주문서 제출 : 상태(제출)

-> 제출 시 거래처 메시지 / 취소 / 저장이 불가하다.

 

관리자 프로세스

1. 제출 상태인 주문 건을 접수 처리한다.

-> 취소를 할 수 있다.(주문 취소 시 관리자 메시지는 필수 입력)

-> 관리자 메시지를 남길 수 있다.

2. 접수 처리된 주문 건을 배송 처리한다.

3. 배송 처리된 주문 건을 완료 처리한다.

 

주문 상태 정의 :

저장

제출

접수

배송

완료

취소

 

INSERT시 자동생성

데이터 등록일시

데이터 등록 아이디

데이터 수정 일시

데이터 수정 아이디

 

UPDATE 자동 입력 필드

데이터 수정 일시

데이터 수정 아이디

 

위의 요구사항을 분석하여 메타를 적용한 칼럼을 만들어 본다.

 

[주문 헤더]

주문번호
거래처아이디
주문상태코드
거래처주문제출일시
거래처주문수정일시
거래처주문취소일시
관리자주문접수일시
관리자주문접수아이디
관리자배송처리일시
관리자배송처리아이디
관리자완료처리일시
관리자완료처리아이디
관리자주문취소일시
관리자주문취소아이디
거래처메시지
관리자메시지

 

위 프로세스와 요구사항을 분석하여 주문 헤더 테이블을 만들었다.

모두 메타가 적용된 상태이며 칼럼의 맨 끝은 도메인으로 끝나게 된다.

 

https://kingsurvival.tistory.com/44?category=1121524 

 

메타관리(공공데이터 공통표준도메인)

"공통표준도메인" 이란 공통 표준용어에서 사용하는 데이터의 값이 공통으로 갖는 데이터 형식과 값의 영역 표준을 정의한 것을 말한다 공통 표준 단어 및 공통 표준 도메인을 이용하여 업무적

kingsurvival.tistory.com

 

도메인 : 

번호 / 코드 / 아이디 / 일시 / 메시지

 

오른쪽 빨간 박스는 칼럼에 등록이 안된 상태이므로 칼럼 등록도 시켜줘야 한다.

테이블생성

주문번호라는 칼럼은 번호로 끝난다.

주문 헤더 건수는 하루 5천 건 미만이라고 한다.

주문번호를 생성할 때 앞자리에 OH + 생성 날짜 + SEQ도 붙여 줄까 한다.

 

예시) OH2022103100001

이제 해당일자가 바뀔 때마다 00001만 초기화되게끔 만들어야겠지

다음날 : OH2022110100001 , OH2022110100002, OH2022110100003...

뒤 5자리는 주문번호라는 시퀀스를 만들고 매일 새벽에 시퀀스 초기화를 해주면 될 것 같다.

그래서 번호 varchar 30을 선택했다.

 

단어는 공통 표준 단어 관리에서 배웠다.

행정 표준 단어의 데이터를 참조해 구성한다.

https://kingsurvival.tistory.com/41?category=1121524 

 

메타관리(공공데이터 공통표준용어)

공통 표준용어란? "공통 표준용어"란 공공데이터를 누구나 같은 의미로 이해하고 같은 방식으로 사용할 수 있도록 행정안전부 장관이 정한 표준용어를 말한다. 데이터를 누구나 같은 의미로 이

kingsurvival.tistory.com

 

도메인을 제외한 단어를 뽑아 보자.

거래처, 관리자, 주문, 수정, 제출, 접수, 배송, 완료, 취소, 처리, 상태

 

 

단어 : 거래처

단축명 : CU

한글명 : 거래처

정의 : 사업을 할 때의 거래처

단어 : 주문

단축명 : ORDR

한글명 : 주문

정의 : 차례의 횟수

단어 : 관리자

단축명 : MNGR

한글명 : 관리자

정의 : 어떤 일을 맡아 관할하고 처리하는 사람

 

단어 : 배송

단축명 : DLVY

한글명 : 배송

정의 : 물자를 여러 곳에 나누어 보내 줌.

 

 

신규 칼럼 등록

컬럼등록

칼럼명이 길어지는 게 싫으다면 주문 취소를 한 단어로 엮어도 된다.

관리자 완료처리 일시 같은 경우 완료라는 단어가 단어에 등록이 안되어서 그렇다.

 

단어등록

 

이제 완료라는 단어는 CPTN이라고 변환될 것이다.

 

테이블 생성

칼럼 관리는 공통 표준 칼럼 관리에서 배웠다.

https://kingsurvival.tistory.com/46?category=1121524 

 

메타관리(공공데이터 공통표준컬럼관리)

컬럼(column)이란 관계형 데이터베이스 테이블에서 특정한 단순 자료형의 일련의 데이터 값과 테이블에서의 각 열을 말한다. 공통 표준 단어 + 공통 표준 도메인을 결합하여 컬럼을 만든다. [컬

kingsurvival.tistory.com

이제 위 새롭게 생성되는 칼럼을 등록해주도록 한다.

위처럼 칼럼까지 모두 등록해주고 다시 테이블 생성을 하게 된다면

테이블생성

아래와 같이 테이블 칼럼에 대해 공통 표준 단어+도메인(속성)까지 적용하여 테이블을 만들었다.

 

테이블 명도 메타가 적용된 것이다.

테이블 명명규칙 참조

https://kingsurvival.tistory.com/38?category=1121524 

 

메타관리(테이블명명규칙_04)

테이블 명명규칙이란? 프로젝트를 많이 관리할수록 테이블명칭을 잘 지어야 테이블명만 봐도 이게 어떤 테이블인지 구분할 수 있게끔 네이밍 규칙을 이용해 테이블명을 생성한다. 개발자들은

kingsurvival.tistory.com

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 

 

메타관리(공공데이터 공통표준코드관리)

메타시스템 공통 코드 관리 공통 코드란? 데이터 속성에 사용되는 값을 코드로 표현하여 짧고 간결하게 구분할 수 있게 함. 알기 쉽게 코로나 시국에 백신 종류에 대입해서 배워보도록 하자 회

kingsurvival.tistory.com

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

 

여기까지 잘 따라오셨다면 당신은 이미 메타 마스터 이제 배운 걸로 메타 시스템을 구축하여 프로젝트에 적용해보도록 하자.

 

다음 시간엔 메타를 적용한 프로젝트 + 데이터베이스 + 테이블 + 문서까지 총망라하여 배워보도록 하자.

 

오늘도 보람찬 생존 ^.^

반응형

댓글