Задать вопрос
@r4gn4r0k

Как правильно связать таблицы Postgesql с таблицей File?

Всем привет. Появился вопрос по проектированию БД Postgesql.
Дело в том, что у меня есть таблица File, в которой хранятся все данные конкретного файла (путь и т.д.). Помимо нее есть еще несколько таблиц, которые должны иметь доступ к нескольким файлам из таблицы Files. Для примера возьмем 2 таких таблицы: Product и Offer. В них обеих нужно давать доступ к нескольким файлам из таблицы File.
У меня есть 2 пути решения, до которых я дошел самостоятельно, но я не уверен что они правильные:
1) В таблице File создавать по каждому полю для связи с другими таблицами (например product_id для связи с таблицей Product и offer_id для связи с таблицей Offer), но из-за этого я создаю в таблице File очень много лишних полей, большинство которых будут в значении 0
2) В таблице File создать поле relation, где указывать с какой таблицей я связываюсь, а также поле relation_id, где указывать к какой строке из внешней таблицы будет соответствовать файл. Но В таком случае мне нет смысла связывать поле relation_id со всеми внешними таблицами, и связей никаких не будет.
Я почти уверен, что есть способ получше. Пожалуйста подскажите какой.
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Я бы выбрал вариант с несколькими полями в таблице Files. Он позволяет указать FOREIGN KEY и, соответственно, получить автоматический контроль целостности связей.
И при отсутствии связи в поле должен быть не 0, а NULL.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы