728x90
테이블 설계를 제대로 하지 않고 머릿속으로 생각하여 진행하니 수정되는 부분이 빈번하게 발생되어 더 견고하게 제작하기 위해서 요구사항부터 ERD설계를 직접 해보았습니다. 프로젝트의 주제는 동물병원 진료 관리 프로그램으로 Spring Boot 기본기를 다지기 위해서 진행하고 있습니다. 다음은 요구사항입니다.
동물병원 진료 프로젝트 요구사항 | |
공통 | 모든 테이블은 생성 시점과 수정 시점에 대해서 저장해야한다. |
회원 | 회원은 등록 시 이름, 전화번호, 주소를 저장한다. 모든 정보에 대해서 수정이 가능하다. 이름으로 검색할 수 있다. 1명의 회원은 여러 반려동물을 저장할 수 있다. |
반려동물 | 등록 시 이름과 생년월일을 저장한다. 수정 시에는 이름만을 수정할 수 있다. 조회 시 이름으로 검색할 수 있다. 반려동물은 1명의 회원만을 저장할 수 있다. |
수의사 | 등록 시 이름, 소개를 저장한다. 모든 정보에 대해서 수정이 가능하고, 이름과 진료과목으로 검색할 수 있다. 1명의 수의사는 하나의 진료과목을 저장할 수 있다. |
차트 | 등록 시 수의사, 반려동물, 생성 날짜, 상태를 저장한다. 수정 시에는 수의사와 상태만 수정할 수 있다. 조회 시 수의사의 이름, 반려동물의 이름, 상태를 이용하여 검색할 수 있다. 상태는 접수, 진행 중, 완료를 가진다. 접수 상태일 때 접수 취소를 할 수 있다. |
진료과목 | 등록 시 이름을 저장한다. 모든 정보에 대해서 수정이 가능하다. 해당 진료과목을 저장하고 있는 수의사들을 조회할 수 있다. 하나의 진료과목은 여러 명의 수의사를 저장할 수 있다. |
처방전 | 등록 시 차트와 설명을 저장한다. 설명만 수정할 수 있다. 하나의 처방전은 하나의 차트를 저장할 수 있다. |
공통으로 들어가는 부분은 @Auditing을 사용하여 구현할 것이고, 주소의 경우 여러 곳에서 사용하고, 내용의 구조가 일정하므로 @Embedded를 사용하여 구현할 것입니다.
요구사항에 맞게 ERD를 나타내면 다음과 같습니다.
해당 프로젝트의 코드는 다음의 링크를 통해 확인이 가능합니다. Github 링크
[2021.09.06 수정 내역]
하나의 차트에는 여러 가지의 처방이 존재할 수 있기 때문에 Chart - Prescription의 관계를 일대다로 수정하였습니다. 또한 처방에는 누가 작성했는지에 대한 정보도 필요하기 때문에 Prescription에 vet column을 단방향 일대일 관계로 추가하였습니다. 마지막으로 Pet, Vet에는 Chart를 조회할 경우가 거의 없다고 판단하여 Pet - Chart, Vet - Chart의 관계를 단방향으로 수정하였습니다.
728x90
'Java, JavaScript > Spring Boot' 카테고리의 다른 글
[Spring Boot] @RequestParam, @PathVariable 차이는 뭐야? (0) | 2021.09.09 |
---|---|
[Spring Boot] 연관관계 메서드 설정하기 (0) | 2021.09.06 |
[Spring Boot] @Autowired를 사용하지 않고 Bean 가져오기 (0) | 2021.08.27 |
[Spring Boot] IntelliJ Live Templates 생성하는 방법 (0) | 2021.08.26 |
[Spring Boot] Auditing은 뭐야? (0) | 2021.08.23 |