![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
создание бд аэропорта
0w1 © (2014-06-06 22:13:00)Задача: Создать БД аэропорта. Есть 3 таблицы: Маршруты, Самолеты, Пилоты. По одному маршруту может летать несколько самолетов. Любой из пилотов может летать на любом сомолете и по любому маршруту.
Вот что получилось:
Маршруты ( id[PK] )
Самолеты (id [PK], id_маршрута [FK] )
Пилоты ( id [PK] )
ПилотыСамолеты ( id_пилота[FK], id_самолета[FK] )
ПилотыМаршруты ( id_пилота[FK], id_маршрута[K] )
Все ли верно? Поправьте меня, если что нет так?
megavoid (2014-06-06 22:47:00) [21]А да, проглядел. Всё равно делают, заводят таблицы с route_id, plane_id и вручную транзакции фигачат :)
turbouser (2014-06-06 22:45:00) [22]
> megavoid © (06.06.14 22:41) [4]
независимо от размеров проекта ссылочная целостность должна соблюдаться.
p.s.
вот только не надо холиварить снова на эту тему.
turbouser (2014-06-06 22:44:00) [23]
> megavoid © (06.06.14 22:41) [4]
> Foreign keys - это конечно правильно, но на практике в не
> особо больших проектах большинство почему-то предпочитает
> вручную делать многие-ко-многим, типа как в [1].
facepalm.jpg
id_plane, id_pilot, id_route - FK
megavoid (2014-06-06 22:41:00) [24]Foreign keys - это конечно правильно, но на практике в не особо больших проектах большинство почему-то предпочитает вручную делать многие-ко-многим, типа как в [1].
0w1 (2014-06-06 22:41:00) [25]ok, спасибо
turbouser (2014-06-06 22:37:00) [26]ну, еще расшифровку маршрутов можно добавить, название (направление), период действия и т.п.
т.е. добавляем таблицу
route - id, name, etc
тогда таблица маршрутов будет такой
routes - id, id_plane, id_pilot, id_route
turbouser (2014-06-06 22:31:00) [27]pilots - id,.... /*пилоты, код, фио и т.п.*/
planes - id.... /*самолеты, код, модель и т.п.*/
routes - id, id_plane, id_pilot /*маршруты - код, самолет, пилот - удовлетворяет условию Любой из пилотов может летать на любом сомолете и по любому маршрут*/
и все