Курсовая работа на тему:
СУБД «Такси города Москва»
Назначение
Данная СУБД «Такси города Москва» предназначена для быстрого и эффективного поиска такси, по указанным критериям, таким как время, начальный и конечный пункты назначения, с учетом специфичных пожеланий клиентов, с выводом стоимости доставки и дополнительной информации по такси для каждого критерия поиска.
СУБД построена на базе MySQL 4.1.16. В качестве оболочки выбран web-интерфейс, написанный на языке программирования PHP 4, с использованием JavaScript и Ajax, в связи с чем данная СУБД является кроссплатформенной и легко разворачиваемой.
В качестве сервера может быть использован любой Windows/Unix сервер, с установленным на нем необходимым программным обеспечением(HTTP – сервер с поддержкой/модулем PHP 4, СУБД MySQL версии 4.1.16). В панели управления базой данных имеются функции, позволяющие в самые кратчайшие сроки добавить все необходимые маршруты, точки маршрутов такси, а также копировать все необходимые данные. Обеспечена поддержка резервного копирования/восстановления базы данных. В качестве клиента СУБД можно использовать любой браузер, установленный на клиентском АРМ.
Структура СУБД
1 Описание полей
Таблица taxi – описание такси
id – уникальный идентификатор такси, является первичным ключем, также используется для связи данной таблицы с другими. Имеет атрибут auto increment, добавляется автоматически.
name – наименование такси
phone – телефоны такси
universal - признак наличия в такси машин с кузовом универсал. Принимает значения 0 или 1.
universal_price – величина доплаты за машину с кузовом универсал.
child_armchair – признак наличия в такси машин с детским креслом. Принимает значения 0 или 1.
armchair_price – величина доплаты за машину с установленным детским креслом.
night_start – начало ночного интервала, установленного в такси, в часах
night_end – окончание ночного интервала, установленного в такси, в часах
night_price – доплата в ночное время
night_percents – процент доплаты в ночное время, расчет по процентам ведется только если поле night_price = 0.
free_time – бесплатное время ожидания при подаче машины(кроме класса точки аэропорт)
waiting_price – стоимость ожидания сверх бесплатного лимита(руб/мин).
aero_free – бесплатное время ожидания в аэропорту при встрече.
aero_price – цена ожидания в аэропорту сверх бесплатного лимита(руб/мин).
notes – заметки
Таблица users - пользователи
user_id – уникальный идентификатор пользователя, является первичным ключем и используется для связки таблиц.
login – логин пользователя для авторизации в системе.
pass – хешированный пароль пользователя.
mail – почтовый ящик пользователя.
rname – настоящее имя пользователя.
rsoname – настоящая фамилия пользователя.
rthirdname – настоящее отчество пользователя.
Таблица taxi_classes – классы такси, и надбавки за различные классы
id – уникальный идентификатор записи, является первичным ключем.
id_taxi – идентификатор такси, используется для связи с другими таблицами
id_class – идентификатор класса автомашины.
class_price – величина надбавки за определенный класс определенного такси
to_aero_price – величина надбавки за подачу машины в аэропорт
Таблица routes – справочник маршрутов
route_id – уникальный идентфикатор марщрута, является первичным ключем, и используется для связи с другими таблицами.
start – идентификатор справочника наименований точек маршрута, стартовая точка маршрута.
end - идентификатор справочника наименований точек маршрута, конечная точка маршрута.
Таблица rating_voters– учет пользователей, голосовавших в рейтинге за определенное такси
voter_id – уникальный идентификатор записи, используется как первичный ключ и для связи с другими таблицами.
ipaddr – IP – адрес компьютера, с которого голосовали, необходимо чтобы отсечь многократное голосование уникального пользователя.
dateadd – дата добавления оценки, в UNIX TIMESTAMP
rating_comments – таблица комментариев такси
id – уникальный идентификатор записи, является первичным ключем
taxi_id – идентификатор такси.
comm._text – текст комментария.
Таблица rating – таблица рейтинга такси
rate_id – уникальный идентификатор записи, является первичным ключем, используется для связи с другими таблицами.
taxi_id – идентификатор такси.
hits – общее число баллов, набранное такси.
Таблица price_intervals – справочник временных интервалов.
int_id - уникальный идентификатор записи, является первичным ключем, используется для связи с другими таблицами.
int_start – начало временного интервала в часах.
int_end – конец временного интервала в часах.
Таблица prices – таблица цен доставки за определенные маршруты с учетом классов автомашин, временных интервалов.
taxi_id - уникальный идентификатор такси, является первичным ключем, используется для связи с другими таблицами.
id_route - уникальный идентификатор маршрута, является первичным ключем, используется для связи с другими таблицами.
interval - уникальный идентификатор временного интервала, является первичным ключем, используется для связи с другими таблицами.
price – стоимость доставки.
class – класс автомашины.
Таблица point_classes – справочник классов точек маршрута
pclass_id - уникальный идентификатор записи, является первичным ключем, используется для связи с другими таблицами
pclass_name – наименование класса точки маршрута.
Таблица points – справочник точек маршрута
point_id – уникальный идентификатор точки, является первичным ключем, используется для связи с другими таблицами.
point_name – наименование точки
point_class – класс точки
ord – порядок вывода, по этому полю производится сортировка.
Таблица news – новостная лента
id - уникальный идентификатор новости, является первичным ключем, используется для связи с другими таблицами.
title – заголовок новости
text – текст новости
img – путь к изображению
author – автор новости
dateadd – дата добавления, UNIX TIMESTAMP
Таблица navigation – таблица, используемая для формирования навигационного меню, сопоставления запроса клиента с модулями программы на сервере.
nav_id - уникальный идентификатор записи, является первичным ключем, используется для связи с другими таблицами.
caption – отображаемое название в навигационном меню.
mode – параметр GET
link – путь к модулю на сервере
ord – порядок вывода
visible – видимость модуля в главном меню.
level – уровень доступа, необходимый для запуска модуля
Таблица f_class_relations – используется для вывода дополнительной информации из сформированного поискового запроса, при выборе определенного класса стартовой точки маршрута, используется для быстрого добавления вывода нужной информации, без необходимости менять программный код оболочки базы данных.
relation_id - уникальный идентификатор отношения, является первичным ключем, используется для связи с другими таблицами.
taxi_f_name– поле, из которого берутся данные, сформированное поисковым запросом.
taxi_f_alias – смысловое значение поля, вывод названия.
point_class_id – идентификатор класса точки, при котором будет выводится данная информация.
full_info – признак, определяющий вывод либо в главную таблицу результатов поиска, либо в дополнительную информацию.
ord – порядок вывода
Таблица config – конфигурация программы
id - уникальный идентификатор записи, является первичным ключем.
config_name – название параметра конфигурации
config_value – значение параметра конфигурации
Таблица classes – справочник классов такси
class_id – уникальный идентификатор записи, является первичным ключем, используется для связи с другими таблицами.
class_name – название класса
ord – порядок вывода
2 Работа с СУБД «Такси»
Функционально БД «Такси» делится на 2 части – панель администрирования и пользовательский каталог.
Панель администрирования – служит для конфигурирования, ввода данных о такси, маршрутах, классов транспортных средств в БД.
Панель администрирования делится на следующие модули :
- новостная лента – служит для добавления новостей, которые в последствии выводятся на всех страницах сайта, выводится последние N новостей, число N задается в конфигурации каталога.
- такси – служит для операций с каталогом такси(добавление, удаление, редактирование, просмотр такси, привязка маршрутов, цен, классов и временных интервалов)
- Маршруты – служит для операций с маршрутами(удаление, добавление, редактирование)
- Пункты назначения – служит для операций с пунктами назначения, из которых потом составляются маршруты (удаление, добавление, редактирование)
- Классификация пунктов назначения - служит для операций с классификатором пунктов назначения (удаление, добавление, редактирование), которые привязываются к пунктам.
- Интервалы времени - служит для операций с интервалами времени назначения (удаление, добавление, редактирование), которые в последствии используются для задания различных тарифов на разные промежутки времени работы такси.
- Отношения – используется для задания отношений для привязки определенных полей таблицы такси к определенному классу пункта назначения.
Классы транспортных средств – служит для добавления, редактирования, удаления классов транспортных средств, необходимых при добавлении такси.
Пользовательский каталог – служит для поиска такси по определенным параметрам.
Доступные параметры поиска – время поездки, класс транспортного средства, начальный пункт назначения, конечный пункт назначения, доп. параметры(кузов – универсал, детское кресло)
Также в пользовательском каталоге есть возможность просмотра всего списка такси, и рейтинг такси.
Голосование с рейтингом выполнено по результатам поиска, с применением технологии AJAX. Есть возможность задавать как положительную/отрицательную оценку, так и возможность оставлять комментарий.