Система бронирования отелей Схема базы данных - PullRequest
2 голосов
/ 17 марта 2010

Я собираюсь разработать систему онлайн-бронирования отелей ... используя php и mysql ... У меня есть некоторые сомнения по поводу моей текущей схемы базы данных и бизнес-логики, чтобы получить отели, в которых свободные номера между двумя конкретными датами. ..

Кто-нибудь знает какой-нибудь учебник, где я могу получить представление о схеме бронирования отелей и бизнес-логике, которая должна использоваться в системе ...?

Спасибо за ваши предложения ....

Редактировать: Я понял большую часть логики ... Точки, которые мне не совсем понятны, следующие ...

  1. Если пользователь выбирает более двух номеров в конкретном отеле между двумя конкретными датами, как я могу указать в следующей таблице бронирования ...?

    Таблица: Бронирование

     Field 1 : reservation_id
     Field 2 : room_id
     Field 3 : no. of Rooms
     Field 4 : check-in date
     Field 5 : check-out date
     Field 6 : Customer id
    
  2. Как я могу проверить, какие номера доступны между двумя датами, основываясь на таблице бронирования и следующей таблице номеров ...?

    Стол: Комната

         Field 1 : hotel_id
         Field 2 : room_id
         Field 3 : total_num_rooms
    

Примечание: БД содержит более одного отеля ... Таким образом, пользователь может выбрать город и искать номера, доступные в отелях в этом районе, между двумя конкретными датами ...

Также скажите, что если в отеле имеется 10 номеров определенного типа, мне нужно указать только количество свободных номеров за указанный период .....

Ответы [ 2 ]

5 голосов
/ 17 марта 2010

Как общая мысль, применяй разделяй и властвуй. Всегда.

Например, как вы думаете, почему конкретный клиент должен иметь возможность иметь «количество комнат» в течение определенного промежутка времени? Что если, например, я нахожусь в командировке и через несколько дней моя семья последует за мной. Теперь для заданного промежутка времени количество комнат больше не является постоянным.

Это не имеет значения? Правда, вы могли бы просто добавить еще одну запись для того же клиента. Но опять же, вы могли бы сделать это в первую очередь и упростить свою логику, говоря, что клиент может иметь только одну комнату за раз в одной строке, но могут быть строки, которые создают перекрытия во временных интервалах для данного клиента.

Кроме того, убедитесь, что вы разделяете Reservation и ReservationRequest. Я думаю, что последний состоит из набора оговорок - потому что я хочу, чтобы эта комната была для меня и моей семьи, и оба критерия должны быть согласованы.

Всего несколько идей. Обратите внимание, что это подход к башне из слоновой кости, и он может привести к массовым раздутым решениям. В RealWorld ™ придерживайтесь предложений Marcs: анализируйте фактические потребности клиентов. Если обработка 1% запросов увеличивает время разработки на 200%, ему это не понравится (или не понадобится), и наоборот.

1 голос
/ 17 марта 2010

Не существует идеального способа представить что-то вроде системы бронирования отелей.

Попробуйте поговорить со своим клиентом или людьми, работающими в отелях, чтобы понять, что они делают сейчас, и основать свою систему на этом.

Я бы предположил:

A Room has a RoomType
A Customer can Book 1..n Room(s)
A RoomType has a name and a price

... и т. Д.

Если вы просто используете учебное пособие, вы можете в конечном итоге создать систему, которая несоответствовать требованиям возможных пользователей.Так что поговорите с этими будущими конечными пользователями, выясните бизнес-логику и начните писать код:)

...