2012-09-20 2 views
0

저는 얼마 전 호텔 관리 시스템을 개발했습니다. 차이점은이 시스템은 여러 호텔과 주택 소유자가 단일 데이터베이스에서 임대하는 경우에 사용된다는 것입니다. 1 주 또는 다른 것과 다를 수 있기 때문에 객실 유형/숙박 시설에 가격을 추가 할 수는 없습니다.SQL 데이터베이스 룸 룸 접근 방식

모바일 가정용 고정 체류 (주말, 주말, 주중) 문제를 극복하고 호텔 객실을 예약 할 수있는 방법 (도착 일 없음, 최소 체류 등)은 가격을 비율 표. 이는 다음과 같이이다 :이 방법이 제대로 경우 또는 내가 지금 데이터베이스가 더 많은 호텔과 mobilehome의과 성장, 궁금

tablename: Availability 
int id 
int roomTypeId 
decimal rate 
dateTime day 
bit canArrive 
int minimumStay 
... 

더 나은 방법 대신 각 roomtype에 대한 속도를 저장하고 각이있을 수 있습니다 경우 날짜.

답변

1

확실! 요금 변화를 매일, 그들은 일반적으로 하지 할 수있는 동안
그것은 점에 유의하는 것이 중요합니다 (그렇지 않으면 속도를 보여주는 어떤 광고가 빠르게 쓸모 갈 것 - 그들은 전에 개월 설계되었습니다 수 있습니다). 다음과 같이

단순하고 순진 (첫 번째 반복) 디자인은 다음과 같습니다

Hotel 
========= 
id -- autoincrement 
name -- varchar(50) 
contactInformation -- (address, phone, etc) 

RoomType 
========== 
id -- autoincrement 
description -- varchar(50) 

HotelRoomTypeRate 
================== 
id -- autoincrement 
hotelId -- fk reference to hotel.id 
roomTypeId -- fk reference to roomType.id 
rate -- decimal 
effectiveOn -- date (this is 'business'/calendar day) 

HotelRoom 
=========== 
id -- autoincrement 
hotelId -- fk reference to hotel.id 
roomTypeId -- fk reference to roomType.id 
status -- fk reference to status table, for things like 'under construction' 

HotelCheckIn 
============== 
id -- autoincrement 
hotelId -- fk reference to hotel.id 
customerId -- fk reference to customer.id 
hotelRoomId -- fk reference to hotelRoom.id 
checkedInOn -- date (again, 'business'/calendar day) 

HotelCheckOut 
=============== 
id -- autoincrement 
hotelCheckInId -- fk reference to hotelCheckIn.id 
checkedOutOn -- date (again, 'business'/calendar day) 

당신은 물론 필요에 따라이를 조정할 필요가있다.

+0

'HotelRoomTypeRate'테이블에 실제로 각 객실에 사용할 수있는 날짜가 필요한지 궁금합니다. – stephan

+0

'사용 가능한 날짜'를 지정하십시오. 이 테이블의 개념은 룸 유형별 (시간 기반) 요금 정보를 가지고 있다는 것입니다. 개별 객실이 있는지 여부는 말할 것도 없습니다. –