Система бронирования мест в отелях города
Разработка системы управления гостиничного портала компании "Петербургские Отели" с интеграцией комплекса модулей для управления его содержимым. Основные цели создания и требования, выдвигаемые при разработке системы бронирования мест в отелях города.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 15.06.2012 |
Размер файла | 2,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Полезным элементом при описании гостиниц и не только является фотогалерея - отсортированный определенным образом набор фотографий. Если говорить непосредственно о сфере бронирования, то отдельно можно выделить фотогалерею номеров гостиниц и фотогалерею самих гостиниц. Структуру представления фотогалерей можно увидеть на рисунке 3.6.
Рисунок 3.6 - ER-диаграмма фотогалерей номеров и гостиниц
Любая фотогалерея прежде всего состоит непосредственно из самих фотографий (далее для общности изображений), для описания которых служит таблица image (таблица 3.30).
Таблица 3.30 - Описание таблицы image базы данных
Название |
тип данных |
Описание |
|
id_image |
int |
Идентификатор изображения. Первичный ключ. |
|
id_folder |
int |
Идентификатор папки. Указывает на папку, в которой лежит данная фотография. |
|
id_created |
int |
Идентификатор создания. По нему находится информация о первом внесении информации об изображении в базу данных. |
|
id_modify |
int |
Идентификатор создания. По нему находится информация о последних изменениях данных об изображении. |
|
name |
varchar (150) |
Название фотографии. |
|
alt |
varchar (150) |
Альтернативный текст для изображения. Выводится, если броузер по каким-либо причинам не может показать изображение, или при наведении на него. |
|
width |
int |
Ширина изображения в пикселях. |
|
height |
int |
Высота изображения в пикселях. |
|
size |
int |
Размер изображения в байтах. |
Следует отметить, что в базе хранится на первый взгляд избыточная информация о размерах изображения, которая может быть вычислена программными средствами. Дело в том, что иногда необходимо сформировать список изображений, отвечающих определенным параметрам. Это может быть, например, группа маленьких фотографий, которые не потребуют длительной загрузки или обработки.
Таблица folder (таблица 3.31) содержит информацию о папке, в которую записан соответствующий файл. В данном случае это фотография.
Таблица 3.31 - Описание таблицы folder базы данных
Название |
тип данных |
Описание |
|
id_folder |
int |
Идентификатор папки. Первичный ключ. |
|
fol_id_folder |
int |
Идентификатор папки. Указывает на папку, в которой лежит данная папка. |
|
id_created |
int |
Идентификатор создания. По нему находится информация о первом внесении информации об изображении в базу данных. |
|
id_meta |
int |
Идентификатор мета данных. По нему находится информация о мета-данных по умолчанию для страниц, лежащих в данной папке. |
|
name |
varchar (150) |
Логической название папки. |
|
folder_adress |
varchar (150) |
Физическое название папки. |
За формирований фотогалерей отвечают отдельные таблицы number_galery (таблица 3.32) и hotel_galery (таблица 3.33). По идентификатору номера или гостинцы можно найти те фотографии, которые к ним относятся, а значит и сформировать фотогалерею.
Таблица 3.32 - Описание таблицы number_galery базы данных
Название |
тип данных |
Описание |
|
id_number |
int |
Идентификатор номера. Первичный ключ. |
|
id_image |
int |
Идентификатор изображения. Первичный ключ. |
|
list_num |
int |
Сортировочный номер. Позволяет сортировать изображения в фотогалерее. |
Таблица 3.33 - Описание таблицы hotel_galery базы данных
Название |
тип данных |
Описание |
|
id_hotel |
int |
Идентификатор гостиницы. Первичный ключ. |
|
id_image |
int |
Идентификатор изображения. Первичный ключ. |
|
list_num |
int |
Сортировочный номер. Позволяет сортировать изображения в фотогалерее. |
Следует отметить, что данная структура позволяет формировать любые фотогалереи простым добавлением таблицы наподобие number_galery или hotel_galery.
3.2.2 Разработка структуры шаблонов страниц сайта
На большинстве порталов существуют типовые шаблоны, которым соответствует группа страниц сайта. Для того чтобы хранить информацию о таких шаблонах, в базе данных разработана структура, ER-диаграмма, которой представлена на рисунке 3.7.
Рисунок 3.7 - ER-диаграмма шаблонов страниц сайта
Центральным элементом в структуре шаблонов является таблица template (таблица 3.34). Он отвечает за сбор частей шаблона воедино.
Таблица 3.34 - Описание таблицы template базы данных
Название |
тип данных |
Описание |
|
id_template |
int |
Идентификатор шаблона. Первичный ключ. |
|
id_head |
int |
Идентификатор заголовка. Указывает на информацию о заголовочных данных страниц, относящихся к шаблону. |
|
id_block |
int |
Идентификатор блока кода. Указывает на основной блок, отвечающий за формирование html-документа. |
|
name |
varchar (70) |
Название шаблона. |
Дополнительно для описания шаблона служат таблицы head (таблица 3.35) и block (таблица 3.36). Таблица head описывает ту часть шаблона, которая находится до тега <body /> в html-документах. Это мета-данные (помимо уже описанных в таблице 3.10); дополнительно подключаемые файлы, к которым относятся Java-скрипты и css-файлы. Таблица block содержит код, который лежит в теге <body />. Причем такой код может включать подблоки. Для вставки подблоков идентификатор подблока записывается в фигурные скобки через символ # (например: {#21}).
Таблица 3.35 - Описание таблицы head базы данных
Название |
тип данных |
Описание |
|
id_head |
int |
Идентификатор заголовка. Первичный ключ. |
|
name |
varchar (70) |
Название заголовка. |
|
head_text |
text |
Текст заголовка. |
Таблица 3.36 - Описание таблицы block базы данных
Название |
тип данных |
Описание |
|
id_block |
int |
Идентификатор блока кода. Первичный ключ. |
|
Name |
varchar (70) |
Название блока кода. |
|
Block_text |
text |
Текст блока кода. |
Шаблоны страниц сайта, позволяют использовать одну и ту же информацию в различном графическом представлении, что очень важно для фирм, занимающихся бронированием номеров в отелях, т.к. им зачастую требуется большой количество сайтов, содержащих сведения о гостиницах города.
3.2.3 Разработка структуры отдельных страниц сайта
На большинстве сайтов изменения требуется вносить не только в справочную информацию, но и в статьи и обзоры. Для этого была разработана структура страниц сайта, ER-диаграмма которой представлена на рисунке 3.8.
Рисунок 3.7 - ER-диаграмма отдельных страниц сайта
Основой в структуре отдельных страниц сайта выступает таблица page (таблица 3.37). Непосредственно же сама информация о страницах представлена в таблицах, на которые она ссылается.
Таблица 3.37 - Описание таблицы page базы данных
Название |
тип данных |
Описание |
|
id_page |
int |
Идентификатор страницы. Первичный ключ. |
|
id_template |
int |
Идентификатор шаблоны. Указывает на шаблон, согласно которому должна отображаться данная страница. |
|
id_meta |
int |
Идентификатор мета-данных. По нему находится информация о мета-тегах страницы. |
|
id_folder |
int |
Идентификатор папки. Указывает на папку, в которой расположена данная страница. |
|
id |
int |
Идентификатор автора. Указывает на информацию о стороннем источники, если такой имеется. |
|
id_publish |
int |
Идентификатор публикования. По нему находится информация о необходимости размещения данной страницы в общий доступ. |
|
id_created |
int |
Идентификатор создания. По нему находится информация о первом внесении информации о странице в базу данных. |
|
id_modify |
int |
Идентификатор изменений. По нему находится информация о последних изменениях страницы. |
|
name |
varchar (150) |
Название (заголовок) страницы. |
|
file_name |
varchar (255) |
Название файла, которому соответствует данная страница. |
Практически все таблицы, на которые ссылается таблица page, уже рассматривались ранее: publish (таблица 3.7), modify (таблица 3.8), created (таблица 3.9), metas (таблица 3.10), folder (таблица 3.31). Исключение составляет лишь таблица authorship (таблица 3.38). Она предназначена для описания данных, берущихся со сторонних источников с целью сохранения авторских прав их владельцами.
Таблица 3.38 - Описание таблицы authorship базы данных
Название |
тип данных |
Описание |
|
id |
int |
Идентификатор автора. Первичный ключ. |
|
authorname |
varchar (70) |
Имя автора. |
|
source |
varchar (255) |
Ссылка на источник информации. |
Кроме типичного для отдельных страниц функционала система предусматривает и дополнительный. Во-первых, система предусматривает возможность сбора статистики о посещаемости. Для этого предназначены таблица visits (таблица 3.39), которая хранит информацию о посетителях сайта и таблица page_views (таблица 3.40), которая содержит сведения о том кто из посетителей, какие страницы просматривал и когда.
Таблица 3.39 - Описание таблицы visits базы данных
Название |
тип данных |
Описание |
|
id_visits |
int |
Идентификатор посетителя. Первичный ключ |
|
id_session |
int |
Идентификатор сессии. Указывает на сессию, соответствовавшую данному посетителю. |
|
hits |
int |
Количество хитов посетителя. |
|
first_enter |
datetime |
Время и дата первого посещения. |
|
last_enter |
datetime |
Время и дата последнего посещения. |
|
ip |
varchar (16) |
IP-адрес посетителя. |
|
location_history |
varchar (255) |
Информация о странице, с которой посетитель пришел на сайт. |
Таблица 3.40 - Описание таблицы page_views базы данных
Название |
тип данных |
Описание |
|
id_page |
int |
Идентификатор страницы. Первичный ключ. |
|
id_visits |
int |
Идентификатор посетителя. Первичный ключ. |
|
view_date |
datetime |
Время и дата последнего просмотра страницы посетителем. |
Во-вторых, система предусматривает формирование из группы отдельных страниц новостных разделов, статей по определенной теме и просто меню. Реализация этой задачи основана на таблице special_pages (таблица 3.41), которая отвечает за формирование групп страниц, и таблице page_type (таблица 3.42), которая определяет тип страниц в таких группах (новость, статья и т.д.).
Таблица 3.41 - Описание таблицы special_pages базы данных
Название |
тип данных |
Описание |
|
id_spec_page |
int |
Идентификатор специальной страницы. Первичный ключ. |
|
id_page |
int |
Идентификатор страницы. Указывает на страницу, которая входит в соответствующий блок |
|
id_page_type |
int |
Идентификатор типа страницы. Указывает к какой группе относится страница (новость, статья и т.д.) |
|
announcement |
text |
Анонс. Краткое изложение содержания страницы. |
|
date |
date |
Дата. |
Таблица 3.42 - Описание таблицы page_type базы данных
Название |
тип данных |
Описание |
|
id_page_type |
int |
Идентификатор типа страницы. Первичный ключ. |
|
name |
varchar (20) |
Фиксированный набор значений: “Новость”, “Статья”, “Пункт Меню”. |
3.2.3 Разработка структуры голосований и опросов
Очередным дополнительным модулем, предусматриваемым системой является модуль голосований и опросов. Его ER-диаграмма представлена на рисунке 3.8.
Рисунок 3.8 - ER-диаграмма голосований и опросов
Для описания тем голосований или вопросов служит таблица voiting (таблица 3.43), а за голоса отвечает таблица answers (таблица 3.44). Также в структуре присутствуют таблицы metas, modify и created, назначение которых очевидно.
Таблица 3.43 - Описание таблицы voiting базы данных
Название |
тип данных |
Описание |
|
id_voiting |
int |
Идентификатор голосования (опроса). Первичный ключ. |
|
name |
varchar (70) |
Название голосования (опроса). |
|
question |
varchar (255) |
Вопрос. |
|
start_date |
datetime |
Начало действия голосования. |
|
finish_date |
datetime |
Конец действия голосования. |
Таблица 3.44 - Описание таблицы special_pages базы данных
Название |
тип данных |
Описание |
|
id_answer |
int |
Идентификатор ответа. Первичный ключ. |
|
id_voiting |
int |
Идентификатор голосования (опроса) |
|
id_created |
int |
Идентификатор создания. По нему находится информация о первом внесении информации об ответе в базу данных. |
|
id_modify |
int |
Идентификатор изменений. По нему находится информация о последних изменениях об ответе. |
|
id_meta |
int |
Идентификатор мета-данных. По нему находится информация о мета-тегах ответов. |
|
answer |
varchar (150) |
Ответ. |
|
num |
int |
Количество ответов. |
4. Разработка Пользовательского интерфейса системы управления сайтом и заявками на бронирование номеров
Основное требование, которому должен удовлетворять пользовательский интерфейс - простота и удобство использования. Именно поэтому количество элементов на каждой из страниц сведено к минимуму. Кроме этого следует учесть, что приложение должно минимально загружать каналы передачи данных, поэтому обновляемая при перезагрузке информация должна быть по возможности уменьшена.
4.1 Система управления сайтом
Как уже упоминалось, в базовой версии управление сайтом сводится к редактированию информации о гостиницах. Это основное назначение всей системы, поэтому после авторизации в системе загружается страница со списком имеющихся гостиниц (рисунок 4.1).
Рисунок 4.1 - список гостиниц. Сортировка по названию по возрастанию.
4.1.1 Работа со списками элементов в системе управления сайтом
Выводимый список является отсортированным, причем тип сортировки можно менять. При смене типа сортировке перезагружается только содержимое таблицы. А остальные данные остаются нетронутыми. Сортировкой по умолчанию являются сортировка по названию, а наиболее распространенной после нее - по дате изменения (рисунок 4.2), позволяющая находить гостиницы со свежими изменениями. Смена сортировки осуществляется простым нажатием на значок рядом с соответствующим заголовком столбца.
Рисунок 4.2 - список гостиниц. Сортировка по дате изменения по возрастанию.
Следует отметить, что сортировка допускается как по возрастанию, так и по убыванию. На рисунках 4.3 и 4.4 представлены соответствующие варианты для сортировки по идентификатору.
Рисунок 4.3 - список гостиниц. Сортировка по идентификатору по возрастанию.
Рисунок 4.4 - список гостиниц. Сортировка по идентификатору по убыванию.
Кроме стандартных полей для сортировки есть еще одно - поле “сорт.”. Если список необходимо отсортировать в строго заданном порядке можно просто внести соответствующую информацию о гостинице (сортировочный номер). Отсортированный по данному полю список можно увидеть на рисунке 4.5.
Рисунок 4.5 - список гостиниц. Сортировка по сортировочному номеру по возрастанию.
Система предусматривает очень удобную навигацию. В левой части постоянно находится основное меню, позволяющее переходить между основными разделами. В верхней части содержится информацию о текущем пользователе системы управления, а чуть ниже находится навигационный путь, с помощью которого всегда можно вернуться на верхние уровни.
Над и под таблицей содержится удобный блок, позволяющий перемещаться по списку, если он не помещается на одной странице.
Кроме того, предусмотрены кнопки “Добавить элемент" и “Удалить отмеченный”. Кнопка добавления перенаправляет пользователя на соответствующую страницу, а кнопка удаления стирает всю информацию об элементах в списке, слева от которых проставлена галочка.
Для перехода к редактированию элемента необходимо нажать либо на значок редактирование, либо на название необходимого элемента. Очень важно, что при этом перезагрузится исключительно поле с таблицей, вместо которого загрузится форма для редактирования элемента (рисунок 4.6). Кстати обработка кнопки добавления осуществляется по тому же принципу.
Рисунок 4.6 - редактирование гостиницы. Общая информация.
4.1.2 Работа с отдельными элементами системы управления сайтом
При переходе к редактированию гостиниц открывается форма с набором вкладок:
· “Общая информация”;
· “Контакты и адреса”;
· “Периоды”;
· “Номера”;
· “Мета-данные”.
Вкладкой по умолчанию является вкладка “Общая информация” (рисунок 4.6). Их смена осуществляется простым кликом по ним, причем перегружается только непосредственно информация самих вкладок.
Во вкладке “Общая информация” вносятся изменения о необходимости размещения гостиницы в общий доступ и базовая информация о гостинице, такая как название.
Вкладка “Контакты и адреса” (рисунок 4.7) отвечает соответственно за редактирование контактной информации. Для добавления дополнительных телефонов необходимо нажать на кнопку “+”.
Рисунок 4.7 - редактирование гостиницы. Контакты и адреса.
За информацию о номерах гостиницы отвечает сразу две вкладки “Периоды” (рисунок 4.8), в которой формируются интервалы действия стоимостей номеров и непосредственно номера (рисунок 4.9).
Рисунок 4.8 - редактирование гостиницы. Периоды.
Рисунок 4.9 - редактирование гостиницы. Номера.
Весь процесс редактирования предельно прост и интуитивно понятен. Добавление элементов осуществляется тем же способом, единственное исключение - изначально большинство полей являются пустыми.
По желанию заказчика была также добавлена вкладка “Мета-данные” (рисунок 4.10).
Рисунок 4.10 - редактирование гостиницы. Мета-данные.
Следует отметить, что мы легко можем получить расширение возможностей работы с данными гостиницы путем добавления новых вкладок.
4.2 Система управления заявками на бронирование номеров в отелях
Работа с заявками очень похожа на работу с информацией о гостиницах. Тот же интерфейс как при работе со списками (рисунок 4.11), так и при обработке конкретных элементов (рисунок 4.12). Поэтому он не требует дополнительных комментариев.
Рисунок 4.10 - список заявок. Сортировка по фамилии клиента по возрастанию.
Рисунок 4.10 - редактирование заявки. Общая информация.
Вывод: разработанный интерфейс чрезвычайно прост в использовании, интуитивно понятен и не требует особых знаний и навыков.
Заключение
В работе изложена информация о лучших на сегодняшний день системах управления сайтами. Проведен анализ их достоинств и недостатков.
Разработана система управления сайтом и заявками на бронирование номеров в отелях города.
Представлены возможные варианты дальнейшего расширения системы.
Внедрение разработанной системы управления сайтом позволит облегчить и упростить работу работу менеджеров по бронированию, а также снизит стоимости обслуживания сайта.
В дальнейшем возможно написание дополнительного функционала к системе, позволяющего решать более серьезные задачи. Среди них система web-аналитики и обеспечение системы возможностью обмена информацией с программой "1С".
Список литературы
1. Эд Леки-Томпсон и др. PHP5 для профессионалов. - М.: Вильямс, 2006. - 608 с.
2. Сравнительные особенности современных CMS. - “Internet.ru”, 22 декабря 2005 г.
3. А. Моисеев. На том стоим. - Журнал "Компьютерра", №32, 08 сентября 2005 г.
4. “CMSlist.ru”, 2005 г.
5. А. Терехов. Сравниваем контент-менеджеры. - “Cmslist.ru”, 2005 г.
6. Закас Н., Мак-Пик Д., Фосетт Д. Ajax для профессионалов. - СПб: Символ-Плюс, 2006. - 488 с.
7. http://www.xaker.ru - журнал "Хакер".
8. http://www.lightnet. obninsk.ru - еженедельник "Свет в internet".
Приложение А - Листинг программы
В целях сокращения объема в приложении приведена лишь наиболее важная часть кода программы.
class. Database. php
<?
require_once ($cfg ['path'] ['base']. "classes/class. Database. php"); // Подключаем класс по работе с БД
require_once ($cfg ['path'] ['base']. "classes/class. GenericObject. php"); // Подключаем класс по работе с объектами
require_once ($cfg ['path'] ['base']. "classes/class. GenericObjectCollection. php"); // Подключаем класс по работе с коллекциями объектов
require_once ($cfg ['path'] ['base']. "classes/class. Hotel. php"); // Подключаем класс гостиниц
class HotelCollection {
var $order;
var $where;
var $select;
var $items_per_page = 20;
var $item_count;
var $page_count;
var $objDB; // Класс БД
// конструктор
public function __construct ($objDBlink) {
global $cfg;
$this->select = "SELECT id_hotel FROM". $cfg ['table'] ['hotel'];
$this->order = "";
$this->where = "";
$this->objDB = $objDBlink; // Запоминаем объект БД
return (true); //
}
// Функция устанавливает количество элементов на странице
public function SetItemsPerPage ($items_per_page) {
$this->items_per_page = $items_per_page;
}
// Функция возвращает количество элементов на странице
public function GetItemsPerPage () {
return ($this->items_per_page);
}
// Функция возвращает количество элементов в коллекции
public function GetItemCount () {
return ($this->item_count);
}
// Функция возвращает количество страниц
public function GetPageCount () {
return ($this->page_count);
}
// Функция устанавливает значение переменной select
public function SetSelect ($select) {
$this->select = $select;
}
// Функция устанавливает значение переменной where
public function SetWhere ($where) {
$this->where = $where;
}
// Функция устанавливает значение переменной order
public function SetOrder ($order) {
$this->order = $order;
}
public function GetAllHotels ($page_num=1) {
global $cfg;
$dbc = new GenericObjectCollection ($cfg ['table'] ['hotel'], "id_hotel", "Hotel", $this->objDB);
$stmt = "SELECT id_hotel FROM". $cfg ['table'] ['hotel']; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
for ($i=0; $i<=sizeof ($arResult) - 1; $i++) {
$dbc->AddTuple ($arResult [$i] ["id_hotel"]);
};
$dbc->SetPageSize ($this->items_per_page);
$dbc->PopulateObjectArray ($page_num);
$objArray = $dbc->RetrievePopulatedObjects ($page_num);
$this->item_count = $dbc->GetItemCount ();
$this->page_count = $dbc->GetNumPages ();
return ($objArray);
}
public function GetFromClass ($page_num=1) {
global $cfg;
$dbc = new GenericObjectCollection ($cfg ['table'] ['hotel'], "id_hotel", "Hotel", $this->objDB);
// формируем запрос
$stmt = "";
$stmt. = $this->select;
$stmt. = $this->where;
$stmt. = $this->order;
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
for ($i=0; $i<=sizeof ($arResult) - 1; $i++) { // проходим все элементы
$dbc->AddTuple ($arResult [$i] ["id_hotel"]); // Записываем соответствующие id
};
$dbc->SetPageSize ($this->items_per_page); // Переписали данные о количестве элементов на страницу
$dbc->PopulateObjectArray ($page_num); // Составили список требуемых id
$objArray = $dbc->RetrievePopulatedObjects ($page_num); // получили массив требуемых элементов
$this->item_count = $dbc->GetItemCount (); // запомнили количество элементов
$this->page_count = $dbc->GetNumPages (); // запомнили количество страниц
return ($objArray); // Возвращаем массив значений
}
}
? >
class. UserSession. php
<?
require_once ($cfg ['path'] ['base']. "classes/class. Database. php"); // Подключаем класс по работе с БД
require_once ($cfg ['path'] ['base']. "classes/class. GenericObject. php"); // Подключаем класс по работе с объектами
require_once ($cfg ['path'] ['base']. "classes/class. GenericObjectCollection. php"); // Подключаем класс по работе с коллекциями объектов
require_once ($cfg ['path'] ['base']. "classes/class. Hotel. php"); // Подключаем класс гостиниц
class HotelCollection {
var $order;
var $where;
var $select;
var $items_per_page = 20;
var $item_count;
var $page_count;
var $objDB; // Класс БД
// конструктор
public function __construct ($objDBlink) {
global $cfg;
$this->select = "SELECT id_hotel FROM". $cfg ['table'] ['hotel'];
$this->order = "";
$this->where = "";
$this->objDB = $objDBlink; // Запоминаем объект БД
return (true); //
}
// Функция устанавливает количество элементов на странице
public function SetItemsPerPage ($items_per_page) {
$this->items_per_page = $items_per_page;
}
// Функция возвращает количество элементов на странице
public function GetItemsPerPage () {
return ($this->items_per_page);
}
// Функция возвращает количество элементов в коллекции
public function GetItemCount () {
return ($this->item_count);
}
// Функция возвращает количество страниц
public function GetPageCount () {
return ($this->page_count);
}
// Функция устанавливает значение переменной select
public function SetSelect ($select) {
$this->select = $select;
}
// Функция устанавливает значение переменной where
public function SetWhere ($where) {
$this->where = $where;
}
// Функция устанавливает значение переменной order
public function SetOrder ($order) {
$this->order = $order;
}
public function GetAllHotels ($page_num=1) {
global $cfg;
$dbc = new GenericObjectCollection ($cfg ['table'] ['hotel'], "id_hotel", "Hotel", $this->objDB);
$stmt = "SELECT id_hotel FROM". $cfg ['table'] ['hotel']; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
for ($i=0; $i<=sizeof ($arResult) - 1; $i++) {
$dbc->AddTuple ($arResult [$i] ["id_hotel"]);
};
$dbc->SetPageSize ($this->items_per_page);
$dbc->PopulateObjectArray ($page_num);
$objArray = $dbc->RetrievePopulatedObjects ($page_num);
$this->item_count = $dbc->GetItemCount ();
$this->page_count = $dbc->GetNumPages ();
return ($objArray);
}
public function GetFromClass ($page_num=1) {
global $cfg;
$dbc = new GenericObjectCollection ($cfg ['table'] ['hotel'], "id_hotel", "Hotel", $this->objDB);
// формируем запрос
$stmt = "";
$stmt. = $this->select;
$stmt. = $this->where;
$stmt. = $this->order;
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
for ($i=0; $i<=sizeof ($arResult) - 1; $i++) { // проходим все элементы
$dbc->AddTuple ($arResult [$i] ["id_hotel"]); // Записываем соответствующие id
};
$dbc->SetPageSize ($this->items_per_page); // Переписали данные о количестве элементов на страницу
$dbc->PopulateObjectArray ($page_num); // Составили список требуемых id
$objArray = $dbc->RetrievePopulatedObjects ($page_num); // получили массив требуемых элементов
$this->item_count = $dbc->GetItemCount (); // запомнили количество элементов
$this->page_count = $dbc->GetNumPages (); // запомнили количество страниц
return ($objArray); // Возвращаем массив значений
}
}
? >
class. GenericObject. php
<?
// Класс "Объект" - предназначен для сокращения кода его наследников
class GenericObject {
// Члены класса
protected $objDB; // Класс БД
private $id; // id элемента
private $id_name; // Обозначение id элемента
private $table_name; // Имя таблицы
private $database_fields; // Ассоциативный массив с ключами, которые являются именами столбцов таблицы и их значениями для данной строки
private $loaded; // Ноль, если данные не были загружены из таблицы - один, если данные были загружены
private $modified; // флаг того, что изменения вносились
private $modified_fields; // Аналогичен database_fields, но содержит 0 или 1 в зависимости от того были ли произведены изменения
// методы
// Функция перезагрузки
// Загружает всю информацию об элементе
public function Reload () {
// $sql = new sql (0);
$id = $this->id; // Запоминаем id
$table_name = $this->table_name; // запоминаем имя таблицы
// $sql->query ("SELECT * FROM \"$table_name\" WHERE id='$id'"); // формируем запрос
$stmt = "SELECT * FROM $table_name WHERE". $this->id_name. "='$id'"; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
if (isset ($arResult [0])) {
$result_fields = $arResult [0]; // Копируем первую строку
$this->database_fields = $result_fields; // Переписываем полученный результат в нащ объект
$this->loaded = 1; // Устанавливаем статус загрузки
if (sizeof ($this->modified_fields) > 0) { // Если есть массив с изменениями
foreach ($this->modified_fields as $key => $value) { // То обнуляем все его элементы
$this->modified_fields [$key] = false;
};
};
}
}
// Функция зарузки
// Загружает всю информацию об элементе
private function Load () {
$this->Reload ();
// $this->loaded = 1;
}
// Функция принудительной загрузки
public function ForceLoaded () {
$this->loaded = 1;
}
// Функция возвращает значение поля
// Ей передается имя поля
public function GetField ($field) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
if (isset ($this->database_fields [$field]))
return $this->database_fields [$field];
else return false;
}
// Функция возвращает весь массив значений элемента
public function GetAllFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
return ($this->database_fields);
}
// Функция возвращает ассоциативный массив полей, которые были изменены
public function GetModifiedFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
$escVals = array (); // Выходной массив значений
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if (isset ($this->modified_fields [$key]))
if ($this->modified_fields [$key] == true) { // Если поле было изменено
$escVals [$key] = $value;
};
};
};
return ($escVals);
}
// Функция возвращает id текущего элемента
public function GetID () {
return $this->id;
}
// Функция инициализации
// задает имя таблицы,
// id
// и id (но не обязательно)
public function Initialize ($table_name, $tuple_id_name, $tuple_id = "") {
$this->table_name = $table_name;
$this->id_name = $tuple_id_name;
$this->id = $tuple_id;
}
// функция Задает значение $value в поле $field
public function SetField ($field, $value) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
if ($this->id) { // и у нас есть конкретный id
$this->Load (); // то мы их загружаем
};
};
$this->database_fields [$field] = $value; // Записываем значение
$this->modified = 1; // Устанавливаем флаг того, что мы вносили изменения
$this->modified_fields [$field] = true; // Устанавливаем флаг того, что поле было изменено
}
// Функция удаления объекта
public function Destroy () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
if ($id) { // Если id задан
$this->objDB->delete ($table_name, array ($id_name => $id)); // Удаляем элемент из таблицы
// $sql = new sql (0);
// $stmt = "DELETE FROM \"". $table_name. "\" WHERE id='". $id. "'";
// $sql->query ($stmt);
};
}
// Функция сохранения в БД
public function Save () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
// $sql = new sql (0);
if (! $id) { // Если id не задан
$this->loaded = 0; // То устанавливаем, что элемент не был загружен
};
if ($this->loaded == 0) { // Если элемент новый (не был загружен)
// Добавляем новую запись в таблицу БД
$this->objDB->insert ($table_name, $this->database_fields);
} else { // Если это не новый элемен
$return_code = $this->objDB->update ($table_name, $this->GetModifiedFields (), array ($id_name => $id));
};
// $return_code = $sql->query ($stmt, 1);
if ($this->loaded == 0) { // Если мы вставляли новый элемент
// Получаем последний вставленный id
$stmt = "SELECT MAX (". $this->id_name. ") AS id FROM $table_name WHERE ";
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if ($value) {
if ($this->modified_fields [$key] == true) {
$value = str_replace ("'", "\'", $value);
$stmt. = "$key = '$value' AND ";
};
};
};
};
$stmt = substr ($stmt,0,strlen ($stmt) - 5); // Убираем лишние символы
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
$proposed_id = $arResult [0] ["id"]; // Переписываем полученный id
if ($proposed_id > 0) { // Если получили нормальный id
$this->loaded = 1; // значит все загружено
$this->id = $proposed_id; // Запоминаем id в объект
return true;
} else {
return false;
};
};
return ($return_code);
}
};
class. GenericObjectCollection. php
<?
// Класс "Объект" - предназначен для сокращения кода его наследников
class GenericObject {
// Члены класса
protected $objDB; // Класс БД
private $id; // id элемента
private $id_name; // Обозначение id элемента
private $table_name; // Имя таблицы
private $database_fields; // Ассоциативный массив с ключами, которые являются именами столбцов таблицы и их значениями для данной строки
private $loaded; // Ноль, если данные не были загружены из таблицы - один, если данные были загружены
private $modified; // флаг того, что изменения вносились
private $modified_fields; // Аналогичен database_fields, но содержит 0 или 1 в зависимости от того были ли произведены изменения
// методы
// Функция перезагрузки
// Загружает всю информацию об элементе
public function Reload () {
// $sql = new sql (0);
$id = $this->id; // Запоминаем id
$table_name = $this->table_name; // запоминаем имя таблицы
// $sql->query ("SELECT * FROM \"$table_name\" WHERE id='$id'"); // формируем запрос
$stmt = "SELECT * FROM $table_name WHERE". $this->id_name. "='$id'"; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
if (isset ($arResult [0])) {
$result_fields = $arResult [0]; // Копируем первую строку
$this->database_fields = $result_fields; // Переписываем полученный результат в нащ объект
$this->loaded = 1; // Устанавливаем статус загрузки
if (sizeof ($this->modified_fields) > 0) { // Если есть массив с изменениями
foreach ($this->modified_fields as $key => $value) { // То обнуляем все его элементы
$this->modified_fields [$key] = false;
};
};
}
}
// Функция зарузки
// Загружает всю информацию об элементе
private function Load () {
$this->Reload ();
// $this->loaded = 1;
}
// Функция принудительной загрузки
public function ForceLoaded () {
$this->loaded = 1;
}
// Функция возвращает значение поля
// Ей передается имя поля
public function GetField ($field) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
if (isset ($this->database_fields [$field]))
return $this->database_fields [$field];
else return false;
}
// Функция возвращает весь массив значений элемента
public function GetAllFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
return ($this->database_fields);
}
// Функция возвращает ассоциативный массив полей, которые были изменены
public function GetModifiedFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
$escVals = array (); // Выходной массив значений
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if (isset ($this->modified_fields [$key]))
if ($this->modified_fields [$key] == true) { // Если поле было изменено
$escVals [$key] = $value;
};
};
};
return ($escVals);
}
// Функция возвращает id текущего элемента
public function GetID () {
return $this->id;
}
// Функция инициализации
// задает имя таблицы,
// id
// и id (но не обязательно)
public function Initialize ($table_name, $tuple_id_name, $tuple_id = "") {
$this->table_name = $table_name;
$this->id_name = $tuple_id_name;
$this->id = $tuple_id;
}
// функция Задает значение $value в поле $field
public function SetField ($field, $value) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
if ($this->id) { // и у нас есть конкретный id
$this->Load (); // то мы их загружаем
};
};
$this->database_fields [$field] = $value; // Записываем значение
$this->modified = 1; // Устанавливаем флаг того, что мы вносили изменения
$this->modified_fields [$field] = true; // Устанавливаем флаг того, что поле было изменено
}
// Функция удаления объекта
public function Destroy () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
if ($id) { // Если id задан
$this->objDB->delete ($table_name, array ($id_name => $id)); // Удаляем элемент из таблицы
// $sql = new sql (0);
// $stmt = "DELETE FROM \"". $table_name. "\" WHERE id='". $id. "'";
// $sql->query ($stmt);
};
}
// Функция сохранения в БД
public function Save () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
// $sql = new sql (0);
if (! $id) { // Если id не задан
$this->loaded = 0; // То устанавливаем, что элемент не был загружен
};
if ($this->loaded == 0) { // Если элемент новый (не был загружен)
// Добавляем новую запись в таблицу БД
$this->objDB->insert ($table_name, $this->database_fields);
} else { // Если это не новый элемен
$return_code = $this->objDB->update ($table_name, $this->GetModifiedFields (), array ($id_name => $id));
};
// $return_code = $sql->query ($stmt, 1);
if ($this->loaded == 0) { // Если мы вставляли новый элемент
// Получаем последний вставленный id
$stmt = "SELECT MAX (". $this->id_name. ") AS id FROM $table_name WHERE ";
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if ($value) {
if ($this->modified_fields [$key] == true) {
$value = str_replace ("'", "\'", $value);
$stmt. = "$key = '$value' AND ";
};
};
};
};
$stmt = substr ($stmt,0,strlen ($stmt) - 5); // Убираем лишние символы
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
$proposed_id = $arResult [0] ["id"]; // Переписываем полученный id
if ($proposed_id > 0) { // Если получили нормальный id
$this->loaded = 1; // значит все загружено
$this->id = $proposed_id; // Запоминаем id в объект
return true;
} else {
return false;
};
};
return ($return_code);
}
};
class. Hotel. php
<?
// Класс "Объект" - предназначен для сокращения кода его наследников
class GenericObject {
// Члены класса
protected $objDB; // Класс БД
private $id; // id элемента
private $id_name; // Обозначение id элемента
private $table_name; // Имя таблицы
private $database_fields; // Ассоциативный массив с ключами, которые являются именами столбцов таблицы и их значениями для данной строки
private $loaded; // Ноль, если данные не были загружены из таблицы - один, если данные были загружены
private $modified; // флаг того, что изменения вносились
private $modified_fields; // Аналогичен database_fields, но содержит 0 или 1 в зависимости от того были ли произведены изменения
// методы
// Функция перезагрузки
// Загружает всю информацию об элементе
public function Reload () {
// $sql = new sql (0);
$id = $this->id; // Запоминаем id
$table_name = $this->table_name; // запоминаем имя таблицы
// $sql->query ("SELECT * FROM \"$table_name\" WHERE id='$id'"); // формируем запрос
$stmt = "SELECT * FROM $table_name WHERE". $this->id_name. "='$id'"; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
if (isset ($arResult [0])) {
$result_fields = $arResult [0]; // Копируем первую строку
$this->database_fields = $result_fields; // Переписываем полученный результат в нащ объект
$this->loaded = 1; // Устанавливаем статус загрузки
if (sizeof ($this->modified_fields) > 0) { // Если есть массив с изменениями
foreach ($this->modified_fields as $key => $value) { // То обнуляем все его элементы
$this->modified_fields [$key] = false;
};
};
}
}
// Функция зарузки
// Загружает всю информацию об элементе
private function Load () {
$this->Reload ();
// $this->loaded = 1;
}
// Функция принудительной загрузки
public function ForceLoaded () {
$this->loaded = 1;
}
// Функция возвращает значение поля
// Ей передается имя поля
public function GetField ($field) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
if (isset ($this->database_fields [$field]))
return $this->database_fields [$field];
else return false;
}
// Функция возвращает весь массив значений элемента
public function GetAllFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
return ($this->database_fields);
}
// Функция возвращает ассоциативный массив полей, которые были изменены
public function GetModifiedFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
$escVals = array (); // Выходной массив значений
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if (isset ($this->modified_fields [$key]))
if ($this->modified_fields [$key] == true) { // Если поле было изменено
$escVals [$key] = $value;
};
};
};
return ($escVals);
}
// Функция возвращает id текущего элемента
public function GetID () {
return $this->id;
}
// Функция инициализации
// задает имя таблицы,
// id
// и id (но не обязательно)
public function Initialize ($table_name, $tuple_id_name, $tuple_id = "") {
$this->table_name = $table_name;
$this->id_name = $tuple_id_name;
$this->id = $tuple_id;
}
// функция Задает значение $value в поле $field
public function SetField ($field, $value) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
if ($this->id) { // и у нас есть конкретный id
$this->Load (); // то мы их загружаем
};
};
$this->database_fields [$field] = $value; // Записываем значение
$this->modified = 1; // Устанавливаем флаг того, что мы вносили изменения
$this->modified_fields [$field] = true; // Устанавливаем флаг того, что поле было изменено
}
// Функция удаления объекта
public function Destroy () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
if ($id) { // Если id задан
$this->objDB->delete ($table_name, array ($id_name => $id)); // Удаляем элемент из таблицы
// $sql = new sql (0);
// $stmt = "DELETE FROM \"". $table_name. "\" WHERE id='". $id. "'";
// $sql->query ($stmt);
};
}
// Функция сохранения в БД
public function Save () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
// $sql = new sql (0);
if (! $id) { // Если id не задан
$this->loaded = 0; // То устанавливаем, что элемент не был загружен
};
if ($this->loaded == 0) { // Если элемент новый (не был загружен)
// Добавляем новую запись в таблицу БД
$this->objDB->insert ($table_name, $this->database_fields);
} else { // Если это не новый элемен
$return_code = $this->objDB->update ($table_name, $this->GetModifiedFields (), array ($id_name => $id));
};
// $return_code = $sql->query ($stmt, 1);
if ($this->loaded == 0) { // Если мы вставляли новый элемент
// Получаем последний вставленный id
$stmt = "SELECT MAX (". $this->id_name. ") AS id FROM $table_name WHERE ";
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if ($value) {
if ($this->modified_fields [$key] == true) {
$value = str_replace ("'", "\'", $value);
$stmt. = "$key = '$value' AND ";
};
};
};
};
$stmt = substr ($stmt,0,strlen ($stmt) - 5); // Убираем лишние символы
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
$proposed_id = $arResult [0] ["id"]; // Переписываем полученный id
if ($proposed_id > 0) { // Если получили нормальный id
$this->loaded = 1; // значит все загружено
$this->id = $proposed_id; // Запоминаем id в объект
return true;
} else {
return false;
};
};
return ($return_code);
}
};
class. HotelCollection. php
<?
// Класс "Объект" - предназначен для сокращения кода его наследников
class GenericObject {
// Члены класса
protected $objDB; // Класс БД
private $id; // id элемента
private $id_name; // Обозначение id элемента
private $table_name; // Имя таблицы
private $database_fields; // Ассоциативный массив с ключами, которые являются именами столбцов таблицы и их значениями для данной строки
private $loaded; // Ноль, если данные не были загружены из таблицы - один, если данные были загружены
private $modified; // флаг того, что изменения вносились
private $modified_fields; // Аналогичен database_fields, но содержит 0 или 1 в зависимости от того были ли произведены изменения
// методы
// Функция перезагрузки
// Загружает всю информацию об элементе
public function Reload () {
// $sql = new sql (0);
$id = $this->id; // Запоминаем id
$table_name = $this->table_name; // запоминаем имя таблицы
// $sql->query ("SELECT * FROM \"$table_name\" WHERE id='$id'"); // формируем запрос
$stmt = "SELECT * FROM $table_name WHERE". $this->id_name. "='$id'"; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
if (isset ($arResult [0])) {
$result_fields = $arResult [0]; // Копируем первую строку
$this->database_fields = $result_fields; // Переписываем полученный результат в нащ объект
$this->loaded = 1; // Устанавливаем статус загрузки
if (sizeof ($this->modified_fields) > 0) { // Если есть массив с изменениями
foreach ($this->modified_fields as $key => $value) { // То обнуляем все его элементы
$this->modified_fields [$key] = false;
};
};
}
}
// Функция зарузки
// Загружает всю информацию об элементе
private function Load () {
$this->Reload ();
// $this->loaded = 1;
}
// Функция принудительной загрузки
public function ForceLoaded () {
$this->loaded = 1;
}
// Функция возвращает значение поля
// Ей передается имя поля
public function GetField ($field) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
if (isset ($this->database_fields [$field]))
return $this->database_fields [$field];
else return false;
}
// Функция возвращает весь массив значений элемента
public function GetAllFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
return ($this->database_fields);
}
// Функция возвращает ассоциативный массив полей, которые были изменены
public function GetModifiedFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
$escVals = array (); // Выходной массив значений
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if (isset ($this->modified_fields [$key]))
if ($this->modified_fields [$key] == true) { // Если поле было изменено
$escVals [$key] = $value;
};
};
};
return ($escVals);
}
// Функция возвращает id текущего элемента
public function GetID () {
return $this->id;
}
// Функция инициализации
// задает имя таблицы,
// id
// и id (но не обязательно)
public function Initialize ($table_name, $tuple_id_name, $tuple_id = "") {
$this->table_name = $table_name;
$this->id_name = $tuple_id_name;
$this->id = $tuple_id;
}
// функция Задает значение $value в поле $field
public function SetField ($field, $value) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
if ($this->id) { // и у нас есть конкретный id
$this->Load (); // то мы их загружаем
};
};
$this->database_fields [$field] = $value; // Записываем значение
$this->modified = 1; // Устанавливаем флаг того, что мы вносили изменения
$this->modified_fields [$field] = true; // Устанавливаем флаг того, что поле было изменено
}
// Функция удаления объекта
public function Destroy () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
if ($id) { // Если id задан
$this->objDB->delete ($table_name, array ($id_name => $id)); // Удаляем элемент из таблицы
// $sql = new sql (0);
// $stmt = "DELETE FROM \"". $table_name. "\" WHERE id='". $id. "'";
// $sql->query ($stmt);
};
}
// Функция сохранения в БД
public function Save () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
// $sql = new sql (0);
if (! $id) { // Если id не задан
$this->loaded = 0; // То устанавливаем, что элемент не был загружен
};
if ($this->loaded == 0) { // Если элемент новый (не был загружен)
// Добавляем новую запись в таблицу БД
$this->objDB->insert ($table_name, $this->database_fields);
} else { // Если это не новый элемен
$return_code = $this->objDB->update ($table_name, $this->GetModifiedFields (), array ($id_name => $id));
};
// $return_code = $sql->query ($stmt, 1);
if ($this->loaded == 0) { // Если мы вставляли новый элемент
// Получаем последний вставленный id
$stmt = "SELECT MAX (". $this->id_name. ") AS id FROM $table_name WHERE ";
foreach ($this->database_fields as $key => $value) {
if (! is_numeric ($key)) {
if ($value) {
if ($this->modified_fields [$key] == true) {
$value = str_replace ("'", "\'", $value);
$stmt. = "$key = '$value' AND ";
};
};
};
};
$stmt = substr ($stmt,0,strlen ($stmt) - 5); // Убираем лишние символы
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
$proposed_id = $arResult [0] ["id"]; // Переписываем полученный id
if ($proposed_id > 0) { // Если получили нормальный id
$this->loaded = 1; // значит все загружено
$this->id = $proposed_id; // Запоминаем id в объект
return true;
} else {
return false;
};
};
return ($return_code);
}
};
Размещено на Allbest.ru
Подобные документы
Характеристика гостиничного комплекса и существующей системы управления. Структурная схема предприятия. Информационные потоки. Цели создания автоматизированной системы управления. Локальные сети. Описание информационной базы и интерфейса пользователя.
дипломная работа [4,9 M], добавлен 16.10.2012Основные понятия гостиничной индустрии и виды бронирования. Способы бронирования гостиничных номеров. Характеристика системы и ее особенности. Система формирования сводок и отчетов. Регистрация, размещение и выписка гостей. Управление работой горничных.
курсовая работа [27,0 K], добавлен 10.01.2014Описание предметной области и процессов обработки информации, требующих автоматизации. Обзор существующих программных продуктов. Описание структуры системы бронирования гостевого дома. Назначение и функции программы. Описание методов защиты данных в ИС.
дипломная работа [154,6 K], добавлен 08.02.2013Компания Amadeus как поставщик передовых решений в области информационных технологий, дистрибуции и электронной коммерции для индустрии туризма и авиаперевозок. Система бронирования Amadeus и история ее создания. Продукты и дополнительные спектр услуг.
реферат [35,2 K], добавлен 29.03.2012Разработка многопользовательской системы бронирования авиабилетов, описание и построение модели. Этапы концептуального и логического проектирования, реализация запросов, получение информации по рейсам, их поиск по определенным критериям, заказ билетов.
курсовая работа [1,2 M], добавлен 25.05.2010- Особенности применения компьютерных технологий бронирования на предприятиях индустрии гостеприимства
Деятельность службы бронирования отеля и её функции. Роль информационных технологий в автоматизации управления электронными каналами продаж. Применение систем интернет-бронирования и АСУ в ГУП "Санаторий Зеленая Роща РБ" и гостинице "Президент-Отель".
курсовая работа [51,3 K], добавлен 14.10.2014 Понятие, принципы бронирования билетов на железнодорожные рейсы, порядок автоматизации данного процесса. Методика и этапы формирования программного обеспечения для упрощения бронирования на основе входной и выходной информации. Модели организации данных.
контрольная работа [25,4 K], добавлен 21.02.2012Характеристики и оценка значения, а также роль и значение компьютерных систем бронирования и резервирования на современном рынке. Зарубежные и российские системы, используемые в данной сфере, их сравнительное описание, анализ преимуществ и недостатков.
презентация [2,0 M], добавлен 17.11.2015Описание процесса бронирования билетов. Концептуальное и физическое проектирование базы данных. Точность и корректность хранения и отображения данных в базе данных. Проектирование логики диалога с пользователем. Разработка и описание приложения.
курсовая работа [1,7 M], добавлен 11.02.2016Этапы разработки автоматизированной системы приема и бронирования заказов столиков в заведениях. Анализ среды разработки Android Development Tools. Общая характеристика диаграммы компонентов IOS приложения. Рассмотрение системы контроля версий сервера.
курсовая работа [8,7 M], добавлен 14.05.2014