2011-01-11 2 views
0

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

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

ответ

0

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

С одной колонкой у вас есть целый ряд вопросов:

  • Нет DB-уровень реляционных ограничений (= внешняя ключ)
  • риск ID столкновения между брендом и таблицей пользователей
  • запутывающую
0

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

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

+0

Но таблица родительских фотографий по-прежнему будет иметь «owner_id» colunm? Или вы говорите, чтобы убить таблицу фотографий и хранить фотографии в нескольких таблицах на основе владельца? Тогда, если я завтра меняю схему фотографии, мне нужно обновить все эти таблицы? – mickeyJ

Смежные вопросы