같이 일하던 사수가 나에게 컨벤션에 가본적이 있냐고 질문을 했었다.
가본적이 있어야 업무에 도움이 되기 때문에 받은 질문이었다.
본인은 블록체인 컨벤션에 참석해본적이 있다.
그곳에 컨벤션이 있었고 컨퍼런스가 있었고 컨퍼런스마다 컨퍼런스명이 있었던 것 같다.
회사별로 부스 등등이 있었다.
자바 클래스 설계(추상화 모델링) 하듯이 테이블설계시에도 컨퍼런스에 대한 속성들을 파악해서 설계를 해야 했고
간단한 개념들 보다 실무에서 접근했던 것들을 논하고
그 외의 테이블들이 더 있지만 오늘은 컨퍼런스 테이블에 대해 얘기해보려고 한다.
설계시 유의해야 했던 것들
1) 기획서를 파악하기
2) 일반적인 컨퍼런스의 구조
3) 비대면으로 컨퍼런스가 진행됨을 기억해야 한다.
4) 컨퍼런스가 하나가 아닌 여러 컨퍼런스의 데이터가 쌓일 것을 염두에 두어야 한다.
5) 자료형을 넉넉히 하되 너무 넉넉히 설정하진 말자.
실제와 동일하게 하지 않고 정리형태로 작성한거라 테이블생성시 어떠한 형태로 작성했는지만 봐주었으면 한다.
컨퍼런스ID varchar(20) NOT NULL (PK)
컨벤션ID varchar(20) NOT NULL (FK)
컨퍼런스제목 varchar(50) NOT NULL,
컨퍼런스내용작성 varchar(100) NULL
판매자 ID varchar(20) NOT NULL
컨퍼런스이미지파일경로 varchar(200) DEFAULT NULL
등록일시 datetime DEFAULT current_timestamp()
수정일시 `UPDT_DT` datetime DEFAULT current_timestamp()
컨퍼런스 시작일 date NOT NULL
컨퍼런스 종료일 date NOT NULL
생방송, 녹화방송 varchar(20) NOT NULL
내부URL-컨퍼런스자료, 파일 업로드 varchar(100) NULL
외부URL-링크(유튜브) varchar(100) NULL
스트리밍 화질 선택 varchar(20) NULL
스트리밍 인원 수 선택 int(20) NULL
스트리밍 파일저장 여부 varchar(1) NOT NULL DEFAULT 'Y'
컨퍼런스 입장 요금 설정(감면 또는 비감면) varchar(20) NOT NULL
컨퍼런스저장여부(텍스트 채팅 포함) varchar(1) NOT NULL DEFAULT 'Y'
채팅지원여부(텍스트 채팅 포함(1:N)) varchar(1) NOT NULL DEFAULT 'Y'
컨퍼런스활성화여부 varchar(1) NOT NULL DEFAULT 'Y'
컨퍼런스강사 사진
컨퍼런스강사 이름
컨퍼런스강사 이력
여기에서 ERD설계에서 가장 중요한 것을 꼽으라면 단연코 컨퍼런스와 컨벤션 아이디이다.
컨벤션 아이디는 컨벤션과의 테이블을 외래키(FK)로 걸어주고
컨퍼런스 아이디는 추후 실제 바이어의 컨퍼런스 참석여부를 알려주는 테이블에 FK 연결시켜주어
데이터무결성을 높여주는 역할을 한다.