💡 ERD 설계
프론트측에서 작성한 프로토타입 결과물과의 의견 취합을 통한 지속적인 필드 추가
엔티티 순환참조 문제 발생 가능성 잘 보고 설계하기
N:1 단방향 매핑으로 진행


💡 테이블 명세서
테이블 명세서
| 테이블 명세서 | ||||||||
| 프로젝트 명 | 그룹 심리상담 예약 서비스 개발 | |||||||
| 작성일자 | 2023-01-10 | |||||||
| 데이터 베이스 명 | Main_Project | 테이블 명 | USERS | |||||
| 테이블 설명 | 회원가입을 통한 로그인 대상 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | user_id | bigint | O | O | - | - | - | - |
| 이메일 | varchar(50) | O | - | - | - | - | - | |
| 비밀번호 | password | varchar(150) | O | - | - | - | - | - |
| 이름 | name | varchar(20) | O | - | - | - | - | - |
| 닉네임 | nick_name | varchar(20) | O | - | - | - | - | - |
| 생년월일 | birth | varchar(6) | O | - | - | - | - | - |
| 사진 | image | varchar(100) | - | - | - | - | - | - |
| 권한 | roles | varchar(enum) | - | - | - | - | - | - |
| OAuth2 | user_type | varchar(enum) | - | - | - | - | - | - |
| 토큰만료시간 | token_expiration_time | datetime | - | - | - | - | - | - |
| 리프레시 토큰 | refresh | varchar(enum) | - | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | PROGRAM | |||||
| 테이블 설명 | 상담 프로그램 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | program_id | bigint | O | O | - | - | - | - |
| 상담사 FK | counselor_id | bigint | O | - | O | - | - | - |
| 제목 | title | varchar(50) | O | - | - | - | - | - |
| 내용 | content | text | O | - | - | - | - | - |
| 비용 | cost | int | O | - | - | - | - | - |
| 대표이미지 링크 | image | varchar(100) | X | - | - | - | - | - |
| 참여한 회원 수 | user_count | int | O | - | - | - | - | - |
| 최대 정원 수 | user_max | int | O | - | - | - | - | - |
| 상담시작일 | date_start | datetime | O | - | - | - | - | - |
| 상담종료일 | date_end | datetime | O | - | - | - | - | - |
| 증상 리스트 | symptom_types | varchar(enum) | O | - | - | - | - | - |
| 전달사항 | announce | text | O | - | - | - | - | - |
| 줌 링크 | zoom_link | varchar(255) | O | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | COUNSELOR | |||||
| 테이블 설명 | 상담사 유저 프로필 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | counselor_id | bigint | O | O | - | - | - | - |
| 이름 | name | varchar(20) | O | - | - | - | - | - |
| 비밀번호 | password | varchar(150) | O | - | - | - | - | - |
| 생년월일 | birth | varchar(6) | O | - | - | - | - | - |
| 학력 | graduated | varchar(70) | O | - | - | - | - | - |
| 자기소개 | content | text | O | - | - | - | - | - |
| 경력 | major | text | O | - | - | - | - | - |
| 전문분야 | symptom_types | varchar(enum) | O | - | - | - | - | - |
| 사진 | image | varchar(100) | O | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | POST | |||||
| 테이블 설명 | 게시물 등록은 통한 게시글 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | post_id | bigint | O | O | - | - | - | - |
| 회원 FK | user_id | bigint | O | - | O | - | - | - |
| 상담사 FK | counselor_id | bigint | O | - | O | - | - | - |
| 제목 | title | varchar(50) | O | - | - | - | - | - |
| 내용 | content | text | O | - | - | - | - | - |
| 조회수 | views | int | O | - | - | - | - | - |
| 게시물 분류 | kind | varchar(enum) | X | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | NOTICE | |||||
| 테이블 설명 | 공지사항 (관리자 전용) 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | notice_id | bigint | O | O | - | - | - | - |
| 유저 FK | user_id | bigint | O | - | O | - | - | - |
| 제목 | title | varchar(50) | O | - | - | - | - | - |
| 조회수 | view | int | - | - | - | - | - | - |
| 게시물 분류 | kind | varchar(enum) | O | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | PAY | |||||
| 테이블 설명 | 결제 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | pay_id | bigint | O | O | - | - | - | - |
| 유저 FK | user_id | bigint | O | - | O | - | - | - |
| 예약 FK | reserv_id | bigint | O | - | O | - | - | - |
| 카드 주인 | card_owner | varchar(30) | O | - | - | - | - | - |
| 카드번호 | card_num | int | O | - | - | - | - | - |
| csv번호 | csv_num | int | O | - | - | - | - | - |
| 카드만료일 | expiration_time | datetime | O | - | - | - | - | - |
| 상태 | status | varchar(enum) | O | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | COMMENT | |||||
| 테이블 설명 | 댓글 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | comment_id | bigint | O | O | - | - | - | - |
| 유저 FK | user_id | bigint | O | - | - | - | - | - |
| 게시물 FK | post_id | bigint | O | - | O | - | - | - |
| 상담사 FK | counselor_id | bigint | O | - | O | - | - | - |
| 내용 | content | text | O | - | - | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
| 데이터 베이스 명 | Main_Project | 테이블 명 | RESERVATION | |||||
| 테이블 설명 | 예약 관리 | |||||||
| 컬럼명 | 컬럼 ID | 타입 및 길이 | Not null | PK | FK | IDX | 기본값 | 제약 조건 |
| ID | reserve_id | bigint | O | O | - | - | - | - |
| 유저 FK | user_id | bigint | O | - | O | - | - | - |
| 프로그램 FK | program_id | bigint | O | - | O | - | - | - |
| 생성일 | created_at | datetime | - | - | - | - | - | - |
| 수정일 | modified_at | datetime | - | - | - | - | - | - |
'Project > Main Project' 카테고리의 다른 글
| 💻 기능 개발 - 회원 (0) | 2023.01.26 |
|---|---|
| 📄 API 명세서 - 상담프로그램 & 결제 & 예약 (0) | 2023.01.26 |
| 📄 API 명세서 - 상담사 & 게시물 & 공지사항 (0) | 2023.01.26 |
| 📄 API 명세서 - 사용자 & 로그인 & 로그아웃 (0) | 2023.01.26 |
| 📄 사용자 요구사항 정의서 & 커밋 컨벤션 (2) | 2023.01.06 |
