Схема вопроса для владельца объекта - PullRequest
0 голосов
/ 12 января 2011

У меня есть столбец user_id в пользовательской таблице. Далее у меня есть brand_id в таблице брендов. У каждого варианта использования есть своя страница: у пользователя есть профиль, а у бренда - страница бренда. (ПРИМЕЧАНИЕ. Существует больше подобных отношений. У компании есть страница компании, у города - страница города и т. Д.). Поэтому, когда пользователи загружают фотографии, мне нужно указать их владельцу. Владельцем может быть бренд, пользователь, город, организация и т. Д.

Для пользователя это просто, photo_id принадлежит user_id, где user_id - таблица FK для пользователя. Но чтобы добавить brand_id как владельца фотографии, требуется ли мне отдельное поле или это можно сделать в самом столбце user_id, если я переименую его в owner_id, который будет ссылаться (идентификатор пользователя или идентификатор бренда)?

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Вы можете создать одну таблицу сопоставления для каждой, например, user_photos и brand_photos.

Таким образом, вы получаете полную ссылочную целостность от user_photos до user и brand_photos до brands. Это также может оказать положительное влияние на производительность запросов, фильтрующих фотографии пользователей / брендов.

0 голосов
/ 12 января 2011

2 колонки, руки вниз.(Одно из двух, конечно, всегда должно быть нулевым)

С одним столбцом у вас возникает ряд проблем:

  • Нет референтных ограничений уровня БД (= внешний ключ)
  • Риск столкновения ID между брендом и таблицей пользователей
  • Смущает
...