Это зависит ...
1) от того, как работает система ... если сообщения связаны с профилями.Затем вы должны использовать вариант 1. Например, вопросы, которые я публикую в Stackoverflow, должны быть связаны с моим профилем Stackoverflow.Вопросы, которые я публикую в Superuser, должны быть связаны с этим профилем.
Если вы хотите сохранить этот тип поведения в Варианте 2. В сообщении должно быть поле, указывающее, где оно принадлежит.
2) о том, как вы будете использовать данные.Если вам не нужна информация о профиле при запросе сообщений, возможно, вам не следует связывать профиль и сообщение.
3) С точки зрения производительности, используя очень простую логику, объединяя 3 таблицы для получения некоторыхинформация, вероятно, будет хуже, чем объединение двух таблиц (конечно, это зависит от столбцов в соединении, индексе и т. д., но при прочих равных условиях).
Я думаю, что лучше всего сделать этобудь проще.Проще говоря, будет проще понять, будет ли что-то работать так, как вы ожидаете.Если этого не произойдет, будет легче выяснить, почему и исправить это.И если потребуется, вам будет легче изменить его позже.