Отображение списка местоположений в другую таблицу - PullRequest
0 голосов
/ 20 марта 2020

Мне хотелось изучить postgis / postgres, поэтому я решил создать простое веб-приложение, в котором будет храниться информация об экскурсиях. Теперь я немного затрудняюсь с тем, как на самом деле go сопоставить несколько мест осмотра достопримечательностей с конкретной c записью в тур, так что я решил, что сначала я сплавляю вас, ребята.

Небольшая предыстория о том, как работает приложение:

Прямо сейчас у меня есть таблица для туров. Каждый тур будет содержать основную c информацию, такую ​​как имя, стоимость, даты и другие вещи. Теперь с postgis я добавил вторую таблицу для обозначения «местоположений», которые будут представлять важные точки местоположения, которые пройдет тур. Таблица местоположений будет иметь столбец (geometry (Point, 4326)) для представления географических c координат местоположения.

Теперь я застрял здесь. Тур будет иметь несколько местоположений, связанных с ним, и местоположение может быть частью нескольких туров. Как бы я go о создании этих отношений? Кроме того, если бы мне нужно было также сохранить порядок, в котором мы увидим места в туре, как бы я go о добавлении этой функции

1 Ответ

1 голос
/ 20 марта 2020

Это отношение nn. Таким образом, вам нужна таблица, в которой хранится связь между Туром и Местоположением

Давайте назовем ее таблицей TourLocation. Он должен содержать следующие столбцы:

tourid_int, location_id

Поэтому, когда вы запрашиваете, чтобы получить несколько мест из тура, вы будете делать, как показано ниже

select location_id from TourLocation  where tour_id = @tour_id

То же самое с местоположением

select tour_id from TourLocation  where location_id = @location_id

Если вам нужен порядок местоположений во время тура, просто создайте еще один вызов таблицы location_orders, который должен содержать

tour_id, locations 

, где местоположения будут хранить местоположение в порядке, зависящем от tour_id

...