В действительности вы можете создать соединение между двумя таблицами с любыми столбцами. Основная причина наличия первичных и внешних ключей заключается в том, чтобы обеспечить связь между двумя таблицами. Другими словами, чтобы добавить строку в дочернюю таблицу, вам потребуется первичный ключ родительской таблицы, который будет служить внешним ключом в дочерней таблице. В противном случае вставка не удастся.
Другая причина использования внешнего ключа - позволить вашей родительской таблице выполнить каскадное удаление. Таким образом, вам не нужно сначала вручную удалять строки из дочерней таблицы, а затем удалять из родительской таблицы .... если вы правильно настроили каскадное удаление, вы можете просто удалить строку таблицы, и все дочерние строки будут иди тоже.
Тем не менее, если вы не хотите явно определять этот конкретный столбец как внешний ключ, вы все равно можете выполнить запрос без каких-либо проблем, но это затрудняет чтение ER-диаграммы вашими коллегами, поскольку взаимосвязь между двумя таблицами не определены явно.