Verdoga
@Verdoga

Как лучше спроектировать связь один ко многим в данном случае?

Доброго времени суток.

У меня есть задача создать проект базы данных. В базе данных около двух десятков таблиц, в которых описаны объекты хранения с различными характеристиками. Объединить таблицы в одну нельзя, поскольку они разнородны в плане хранимых данных. Но есть необходимость производить поиск по всем таблицам сразу относительно одной таблицы. Эта таблица указывает место хранения объектов (условно говоря: определённая полка в определённом углу склада). Я хотел бы задавать запрос по этой таблице и понимать, имеется ли что-то на этой полке и что конкретно.

На мой взгляд есть несколько решений. Либо создавать дополнительную таблицу, где все поля - внешние ключи на таблицы с объектами хранения и с местом хранения. Или же в таблице мест хранения указывать id объектов и их типы для последующей обработки логикой и поиска в соответствующих таблицах.

Помогите пожалуйста советом, как лучше сделать и нет ли более удачного решения данной проблемы. Хранить двадцать NULL неохота в случае с внешними ключами, но и дёргать дополнительные запросы тоже не хочется.

На postgres.

Спасибо за ответы.
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 2
ApeCoder
@ApeCoder
Объединить таблицы в одну нельзя, поскольку они разнородны в плане хранимых данных.

Общее объеденить в отдельную таблицу

Если таблиц мало, можно запрос с UNIONами сделать
Ответ написан
@BarryHAllen
Если я правильно понял вопрос - вы можете сделать вьюшку (VIEW) в которой соберете необходимую для поиска информацию из табличек. Структуру базы менять не придется, а поиск будете выполнять по вьюшке
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы