0

私は少し前にホテル管理システムを開発しました。違いは、このシステムは、単一のデータベースで家を借りる複数のホテルや不動産所有者によって使用されていることです。部屋のタイプ/宿泊施設は週ごとに異なる可能性があるため、価格を追加することはできません。

トレーラーハウスの固定滞在(週末、週、週半ば)の問題と、ホテルの部屋を予約する可能性(到着しない日、最低滞在日など)の問題を克服するために私が使用したアプローチは、料金表に価格を保存することです。これは次のとおりです。

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

このアプローチが適切に行われた場合、または各部屋タイプと各日付の料金を保存する代わりに、より良い方法があるかどうか、データベースは現在、ホテルとモバイルホームの数が増えているのではないかと思います。

4

1 に答える 1

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)

もちろん、ニーズに合わせてこれを微調整する必要があります。

于 2012-09-20T16:02:43.137 に答える