Search

회의실 엔터티 개선 #1

회의실 도면을 통해 회의실 엔터티의 속성을 채워보면 다음과 같습니다.
데이터베이스 설계를 위해 빅투코어의 Erd 모델링 툴(Community)를 사용했습니다.
부디, 어떤 툴이든 사용해서 모델링을 직접, 그리고 많이 해보시길 바랍니다.
위와 같이 모델링을 진행한 이유는 다음과 같은 업무 시나리오가 있다고 가정했기 때문입니다.
회의실은 크기 관리가 필요합니다.
회의실에서 허용 가능한 인원수 관리가 필요합니다.
회의실에 어떤 장비가 있는지 관리해야 합니다.
장비가 배치된 일자와 배치가 종료된 일자를 관리할 필요가 있습니다.
장비의 경우는 의자, 책상, 빔스크린, TV 등이 있습니다.
의자와 책상은 소모품으로 처리합니다.
고가의 가전은 관련 제품은 회의실에 배치할때 시리얼번호와 모델명을 반드시 입력하도록 합니다.
여러분들도 모델을 하기 전에 요구 사항을 글로 정리하는 습관을 가져보기 바랍니다. 요구사항을 글로 표현하고 정리하는 습관은 모델러에게 매우 중요한 기술 중 하나입니다.
제가 만든 ERD는 참고 답안일 뿐입니다. 각자가 요구 사항을 상상해보고, 요구 사항을 반영한 모델링을 진행해 보기 바랍니다.
조금 더 모델을 발전시켜보겠습니다. 다음과 같은 요구 사항이 있습니다.
회의실 예약 프로세스가 필요합니다.
예약은 홈페이지를 통해 들어옵니다.
예약이 회원일수도 있고 비회원일수도 있습니다.
비회원일 경우에는 이메일이나 전화번호 둘 중에 하나를 반드시 입력 받아야 합니다.
예약상태를 관리해야 합니다.
예약완료, 예약취소, 예약거절
예약은 무조건 같은날짜의 시작시간 종료시간으로 관리합니다.
시간은 30분 단위로 지정이 가능합니다.
위 요구사항을 반영해 모델을 발전시켜보면 다음과 같습니다.
위의 모델에서 회의실예약 엔터티(테이블)에서는 예약시작일시와 예약종료일시는 회의실을 실제 사용할 시작일시와 종료일시를 뜻합니다. 관련해서는 아래와 같이 예약일자(날짜형)와 예약시작시분(문자4자리)과 예약종료시분(문자4자리)으로 컬럼을 구성해 관리할 수도 있습니다.
어떤 방법을 사용하든 장단점이 존재합니다. 개발자나 개발 리더와 협업을 통해 개발의 편의성과 앞으로 데이터를 어떻게 활용할 것인지를 고민해 최종안을 결정할 필요가 있습니다.
오늘은 여기까지입니다.