2012-12-05 2 views
0

호텔을 예약 할 수있는 요일을 설정하는 웹 양식이 있습니다.호텔에 객실 상황을 저장하는 방법은 무엇입니까? PHP5/MySQL

내 의심 : 내 데이터베이스에 저장하는 것이 가장 좋은 방법은 무엇입니까?

각 요일에 대해 7 개의 부울 열을 만드는 것에 대해 생각했습니다.

EDIT : 내 양식은 백엔드이며 호텔 소유자를위한 부분입니다. 어쩌면 이상하게 들릴지 모르지만 한 주일 중 어느 요일에 방을 사용할 수 있는지를 설정하려고합니다.

답변

1

나는 예약 (visitor_id, room number, 시작 및 종료 날짜) 열과 함께 예약 당 한 행을 테이블에 저장하고 싶습니다. 그런 다음 쿼리를 수행하여 (각 방 또는 전체에 대해) 어떤 날짜를 사용할 수 있는지 확인하십시오.

+0

아니요, 내 양식은 백엔드이며 호텔 소유자를위한 부분입니다. 어쩌면 이상하게 들릴지 모르지만 한 주일 중 어느 요일에 방을 사용할 수 있는지를 설정하려고합니다. – ziiweb

0

방 (즉, 한 방에 한 줄)에 대해 별도의 테이블을 작성한 다음 방/날짜별로 행이있는 별도의 테이블을 만듭니다. 방이 예약되면 두 번째 테이블에 삽입하십시오. 회의실이 사용되는지 확인하려면 첫 번째 표에서 왼쪽 조인과 함께 날짜를 지정하는 두 번째 표를 선택하십시오. 두 번째 테이블의 열이 null이면 방은 무료입니다 (즉, 해당 방/날짜에 대해 예약 된 것이 없습니다).

1

다음과 같은 구조로 보입니다. 복잡한 것처럼 보일 수도 있지만 정규화되어 쉽게 확장됩니다.

Rooms 
-------------------------- 
id 
number 
type (Suite, Standard, Twin) 
floor 

Room_Bookings 
-------------------------- 
room_id 
reservation_id 
type (customer, hotel) 
date 

Reservations 
-------------------------- 
id 
customer_id 
total_price 
paid (yes/no) 
created_by (staff member?) 
number_of_nights 

Room_Available_Days_Of_Week 
-------------------------- 
room_id 
day_id (0 = sunday, 1 = monday etc etc) 
  • 객실 - 호텔의 각 방에 대한 행, 유형은 스위트, 표준, 트윈 등
  • Room_Bookings를 (ID를 이것에 대한 Room_Types 테이블이 있고 저장할 수) 수 - 방이 예약 된 각 날짜에 대한 행으로, 예약 및 룸 테이블로 연결됩니다. type은 고객 또는 호텔 일 수 있습니다. 방을 예약했을 때 고객. 호텔은 특정 날짜에 방을 막는 데 사용할 수 있습니다. 예를 들어, 방에 유지 보수 작업이 필요한 경우.
  • 예약 예약시 각 예약마다 행의 수는 다양한 밤이 될 수있는 호텔 숙박을 의미합니다.
  • Room_Available_Days_Of_Week -이 테이블은 요일에 따라 객실 가용성을 지정해야하는 요구 사항을 처리합니다. 사용 가능한 각 방 및 요일에 대한 행입니다.

는 예를 들어, 3 박 숙박은 Room_BookingsReservations과 3 행의 행으로 구성되어있다.

객실 예약 절차가 Room_Bookings에 예약되지 않았고 Room_Available_Days_Of_Week 테이블에 필요한 요일과 일치하는 행이있는 경우 객실을 사용할 수 있습니다.

관련 문제