Я создаю простое приложение для блога, и пока у меня есть 3 таблицы, Сообщения, Комментарии и Авторы.
Я просто перечислю первичный ключ для каждой таблицы, а также внешний ключ.
Сообщения будут содержать postid в качестве первичного ключа.
Комментарии будут содержать commentid в качестве первичного ключа и postid в качестве внешнего ключа.
Сообщения имеет отношение 0 к многим с комментариями.
Авторы будут содержать authorid в качестве первичного ключа.
Авторы будут иметь много-много отношений с постами и много-много отношений с комментариями.
Последнее утверждение - это то, где у меня больше всего проблем. Имеют ли авторы отношение «многие ко многим» с постами и комментариями, или это один к одному. Если это много ко многим, я слышал, что было бы неплохо иметь промежуточную таблицу, описывающую отношения между постами-авторами и комментариями-авторами, но я не уверен, какие ключи я бы использовал в этой таблице?
Если я устно выражаю это как автор, может написать много постов, и много постов может быть написано одним автором, я вижу это как один ко многим, но если я смотрю это из фактических данных, хранящихся в таблицах, таких как посты будет содержать несколько постов, а авторы будут содержать несколько авторов, тогда кажется, что их будет много-много, поэтому для устранения дубликатов предназначена таблица перекрестных ссылок.