Я проектирую базу данных MySQL, и у меня возникает следующая проблема:
Скажем, у меня есть таблица wall_posts. Стены могут принадлежать как событию, так и пользователю.
Следовательно, таблица wall_posts
должна ссылаться либо на event_id
, либо на user_id
(ограничение внешнего ключа).
Каков лучший способ построить такие отношения, учитывая, что я всегда должен знать, кому принадлежат стены ...?
Я рассматривал возможность использования 2 таблиц, таких как event_wall_posts
и user_wall_posts
, чтобы одна получила поле event_id
, а другая - user_id
, но я считаю, что должно быть что-то намного лучше, чем такая избыточный обходной путь ...
Есть ли способ использовать промежуточную таблицу, чтобы связать wall_posts
с event_id
или user_id
?
Заранее спасибо,
Редактировать: кажется, нет четкого дизайна, чтобы сделать это, и оба подхода кажутся нормальными, так что,
какой из них будет самым быстрым, если данных много?
Желательно ли иметь две отдельные таблицы (чтобы запросы могли выполняться быстрее, поскольку в таблицах будет вдвое меньше данных ...), или все же предпочтительнее иметь лучший подход ОО с одной таблицей wall_posts
ссылка на настенную таблицу (а затем и на пользователей, и на events will have a unique
wall_id`)