前段时间我开发了酒店管理系统。不同的是,该系统被几家酒店和业主用在一个数据库中。我不能只为房型/住宿添加价格,因为它们可能与一周或另一周不同。
我用来克服移动房屋固定住宿(周末,周,周中)的问题以及预订酒店房间的可能性(无到达日,最短住宿等)是以一定的价格存储价格-表。具体如下:
tablename: Availability
int id
int roomTypeId
decimal rate
dateTime day
bit canArrive
int minimumStay
...
我想知道,现在数据库正在增长,有更多的酒店和移动房屋,如果这种方法做得恰当,或者可能有更好的方法,而不是存储每种房型和每个日期的费率。
答案 0 :(得分: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)
你当然需要调整它以满足你的需要。