Хранит сведения об экскурсионных маршрутах.
route_id — идентификатор маршрутаroute_name — название маршрутаstart_point — начальный пунктend_point — конечный пунктdistance_km — протяженность маршрутаХранит сведения об автобусах.
bus_id — идентификатор автобусаbus_number — номер автобусаbus_name — название автобусаtotal_mileage_km — общий пробег автобусаХранит сведения об экипажах.
crew_id — идентификатор экипажаbus_id — идентификатор автобуса, за которым закреплен экипажХранит сведения о членах экипажа.
member_id — идентификатор члена экипажаsurname — фамилияpersonnel_number — табельный номерexperience_years — стажcategory — категорияaddress — адресbirth_year — год рожденияcrew_id — идентификатор экипажаХранит сведения о выполненных рейсах.
trip_id — идентификатор рейсаdeparture_date — дата отбытияarrival_date — дата прибытияpassenger_count — количество пассажировticket_price — стоимость билетаroute_id — идентификатор маршрутаbus_id — идентификатор автобусаХранит информацию о начислениях экипажам за определённый период.
payment_id — идентификатор записиcrew_id — идентификатор экипажаperiod_start — начало периодаperiod_end — конец периодаpercent_rate — процент начисленияtotal_amount — сумма начисленийcalc_date — дата расчётаХранит данные пользователей системы.
user_id — идентификатор пользователяlogin — логинpassword — парольrole — роль пользователяcrew_member_id — ссылка на члена экипажаcrew связан с одним членом экипажа.PRIMARY KEY для уникальной идентификации записей.FOREIGN KEY для обеспечения связей между таблицами.UNIQUE для предотвращения дублирования данных.CHECK для проверки корректности значений.Дополнительно используются триггеры:
check_crew_member_limit — ограничивает количество членов экипажа.validate_trip_before_insert — проверяет корректность данных при добавлении рейса.Так как в SQLite отсутствует поддержка хранимых процедур, необходимая функциональность реализована через триггеры и SQL-запросы.
INSERT INTO ... SELECT ...
с сохранением результата в таблицу crew_payments.