Как правильно разбить таблицы

Рейтинг: 1Ответов: 1Опубликовано: 21.02.2023

в двух словах, есть сервис по бронированию экскурсий, экскурсия привязывается к региону и одна экскурсия может быть привязана к нескольким регионам. В каждом регионе есть свой список отелей из которых забирают клиентов и везут на экскурсию

у меня есть таблицы:

1) regions - id, title
2) excursions - id, title, text
2) hotels - id, title

Вот дальше я запутался как правильно и лучше разбить, чтобы поиск был либо по региону, либо по региону и отелю к нему привязанному

Пока вот так сделал

1) excursion_region - id, excursion_id, region_id
2) excursion_region_hotel - id, excursion_region_id, hotel_id

Но что-то такая структура меня смущает и мне кажется очень сложная логика. Буду рад профессиональному совету, спасибо

Ответы

▲ 1Принят

Первая расшивка (many-to-many) правильная, вторая - нет. Расшивка на расшивку - это какое-то извращение.

Как я понял, эти таблицы уже существуют:

  • regions - id, title
  • excursions - id, title, text
  • hotels - id, title

Добавляйте ещё две расшивки, и будет ок:

  • region_excursion - id, region_id, excursion_id
  • region_hotel - id, region_id, hotel_id