06. 온라인 예약 시스템 만들기

[20241101] 온라인 예약 시스템_ERD 그리기

devamy 2024. 11. 1. 19:35

ERD 그리기 전에 여러 테이블들을 구성하고 속성은 어떻게 되는지 적어보려 한다.

한 번에 다 하기 귀찮고, 완벽하려다가 실패한 경험을 많이 해봤기 때문에

easy 하게...


1. 회원 테이블(USER)

- user_id : 사용자 아이디

- user_pw : 사용자 비밀번호

- user_nm : 사용자 이름

- auth : 권한(사용자는 MBER, 관리자는 MNGR)

- phone : 휴대폰 번호

 

이 정도면 되지 않을까?

어차피 네이버 예약 시스템도 개인정보 보호의 의미로 이름과 휴대폰 번호만 수집하지 않을까 싶어서 

실제로 사용자/관리자가 확인해야 하는 정보는 예약자 이름+휴대폰 번호 조합일 것이라 생각해서 이정도로 정리.

pk는 아이디 중복검사를 할 것이기 때문에 아이디로 하는 게 좋을까 싶다.

그런데 아이디를 pk로 하는 건 또 안 들어봐서...

 

아니면 pass 인증을 추가할까?

이게 내 문제다. 하다 보면 욕심이 생겨서 화려해지고 싶어진다.

 

추가한다는 가정하에(결국 하기로 결심...ㅎ)

pass의 DI값이  pk로 아주 적절할 것 같다.


2. 예약 테이블(RESERVATION)

- reservation_id : 예약 고유 ID

- user_id : 예약한 사용자 ID

- date : 예약 날짜

- time_slot : 예약 시간대

- status : 예약 상태(예약 대기, 예약 확정, 예약 취소)


3. 시간대 테이블 (TIMESLOT)

- time_slot_id: 시간대 ID

- slot: 시간대 (09:00-10:00, 10:00-11:00 등)

- availability: 사용 가능 여부

 

관리자가 시간대를 설정하고 오픈할 수 있게끔 시간대 테이블도 만들어준다.

다만, 당일 예약만 할 것인지 한 달을 열어놓을 것인지도 고민이 필요해졌다.

datepicker를 사용하고... 그러면, 예약날짜를 예약 테이블에 각각 저장할 수 있지 않을까.

시간대 테이블에 date도 필요할 것 같다.

 

그래서 

3번 테이블에

- date : 날짜

 

추가해서, 다음은 ERD를 실제 그려봐야겠다.

 

다행히, 3개 테이블 밖에 없어서 금방 끝날 것 같다.

ERD를 그리고 ---> 그다음은 ---> 모르겠다...