Это зависит ...
1) о том, как система works..if посты связаны с профилями. Затем вы должны использовать вариант 1. Например, вопросы, которые я отправляю в Stackoverflow, должны быть связаны с моим профилем Stackoverflow. Вопросы, которые я отправляю в Superuser, должны быть связаны с этим профилем.
Если вы хотите поддерживать этот тип поведения с вариантом 2. У столбца должно быть поле, указывающее, где находится запись.
2) о том, как вы будете использовать данные. Если вам не нужна информация о профиле при запросе сообщений, возможно, вам не следует связывать профиль и должность.
3) С точки зрения производительности, используя очень основную логику, объединение трех таблиц для получения некоторой информации, вероятно, будет хуже, чем объединение двух таблиц (конечно, зависит от столбцов в объединении, индексе и т. Д.). но говорят, что все остальное равно).
Я думаю, что самое лучшее, что нужно сделать, это сохранить его просто. Сохраняя это просто, будет легче выяснить, будет ли что-то работать так, как вы ожидаете. Если это не так, будет легче понять, почему и исправить это. И в случае необходимости вам будет легче изменить его позже.
Можете ли вы объяснить, что представляют собой 'user',' profile' и 'post'? Что вы на самом деле собираетесь делать с данными, как часто и в каком масштабе? –
@Surreal Dreams, спасибо за ответ. Они на самом деле представляют то, что они есть :) Данные 'Post' являются наиболее часто встречающимися в создании/обновлении, а затем пользователями и профилями. Конечно, на нынешнем этапе проект недостаточно велик. Но в будущем я ожидаю 10 000 просмотров в день. – Darmen
В чем разница между «User» и «Profile»? Почему у пользователя много профилей? – wuputah