Я пытаюсь спроектировать бэкэнд и у меня есть следующий вариант использования.
У меня есть информация о рейсе из точки A в B, и мне нужно определить схему, которая поддерживает различные варианты использования.
Я пытаюсь найти хороший способ справиться со случаем, когда есть остановки в пунктах.
Например, маршрут полета для A -> B на самом деле выглядит так:
A -> C
C -> D
D -> B
поэтому A -> B - это одно целое, но, в свою очередь, оно состоит из нескольких ветвей.
Мой текущий дизайн:
Таблица AirLeg:
- id
- departure and arrival information
- viaPoints: BOOL
Таблица viaPoints:
- id
- airLegId // FK into Airleg table
- similar departure and arrival information from airLeg table
// если в таблице AirLeg флаг viaPoints имеет значение True, можно запросить таблицу viaPoints, используя таблицу airLegId для получения посредников.
Есть ли лучший способ справиться с этим?
Я думал, что добавлю информацию о поездке или сегменте в одну сторону:
- AirLeg-id
- Аэропорт вылета: FK в аэропорты
- Аэропорт прилета: FK в аэропорты
- Метка времени вылета (по местному времени города вылета)
- Метка времени прибытия (по местному времени города прибытия)
- продолжительность полетаэтот авиаперелет: статическое значение
- flightId: FK для авиакомпаний с указанием названия авиакомпании и номера рейса
- Правила провоза багажа: текст
- Разное (ТЕКСТ: Политика отмены)
РЕДАКТИРОВАТЬ:
Я добавил связанный вопрос , и я думаю, что ответ на эту проблему должен удовлетворить оба требования.
Если в поездке несколько сегментов, цена определяется для всего рейса, а не для отдельных сегментов
Аналогично, цена за рейс в оба конца указывается как единица, а не отдельные компоненты из A-> Bи обратно, B-> A.