Вопрос № 45305: Доброго времени суток, Уважаемые Эксперты!!!!
Есть задача создать базу данных:
предметная область: касса автовокзала
Объектная информация:
Маршрут: № маршрута, время отправления, направление, тип автобуса.
Тип автобуса: марк...
Вопрос № 45.305
Доброго времени суток, Уважаемые Эксперты!!!!
Есть задача создать базу данных:
предметная область: касса автовокзала
Объектная информация:
Маршрут: № маршрута, время отправления, направление, тип автобуса.
Тип автобуса: марка, кол-во мест, характеристика (мягкий, жесткий), стоимость полного и детского
билета, регистрационный знак.
Наличие мест: № маршрута, время отправления, продано билетов, кол-во свободных мест.
Касса: № маршрута, время отправления, место, десткий или взрослый билет, сумма.
Так вот сообственно проблема:
если таблицы "маршрут" и "тип автобуса" получается связать легко чз поле тип автобуса,то
таблицы "наличие мест" и "касса" ни как не клеются ни друг с другом ни с "маршрутом"
(реализуется в Access) - не удается установить связи.
Подскажите схему данных.
И вообще хотелось бы сделать запрос, который бы сразу делал запись в "кассе" и корректировал
данные в "Наличии мест".
Отвечает: Игорь Елизаров
Здравствуйте, Korolyov Alexandr!
мне кажется, что наличие мест надо связывать с автобусом
и кассу тоже с автобусом
и маршрут, тоже с автобусом
то есть получается примерно следующее
таблица маршрута Marchrut
Id идентификатор маршрута
name его описание
таблица автобуса auto
id идентификатор
number номер
voditel водитель
data дата маршрута
id_marsh идентификатор маршрута
kol_mest количество мест
таблица наличия мест Mesto
id идентификатор записи
id_auto идентификатор автобуса
id_marsrut идентификатор маршрута
summa сумма, полученная с пассажира
date дата
check номер кассового чека
Эта табличка автоматически заполняется при назначении автобуса на маршрут, в нее добавляется количество записей, равное количеству мест в автобусе
ну а заполнять ее можно просто через форму, выбираешь маршрут, автобус (или дату) и высвечиваешь список свободных мест и тут же их заолняешь.
то есть в общем-то никаких и запросов-то особых не надо, работаешь с базой через форму.
Мне кажется, так будет наиболее просто.
Если желаете, могу эту идею развить более подробно..
Ответ отправил: Игорь Елизаров (статус: 4-ый класс)
Ответ отправлен: 06.06.2006, 01:02
Отвечает: Кузьма Дмитрий Валерьевич
Здравствуйте, Korolyov Alexandr!
Рациональнее было бы немного переделать уже имеющееся: к маршруту добавить id_marsh, тогда
в МЕСТА вместо №маршрута и время отправления ставишь id_marsh - по нему и связываешь таблицы между
собой. При создании нового маршрута добавляешь запрос на создание записи
1052;ЕСТА (устанавливаешь автоматическую установку свободных мест по местам).
В КАССУ вместо номера маршрута и времени отправления устанавливаешь id_mesto(это не номер места
в автобусе, а строка, в которой хранится инфа о свободных местах - номер места
в автобусе хранится в таблице касса). Соответственно, после заполнения записи в кассе
автоматически вычитаешь единицу из числа свободных мест.
Это не самый простой (хотя и совсем не сложный) способ, но зато один из самых экономичных
по месту на диске.