私のアプリケーションには、UsersとProfilesの2つのテーブルがあります。ユーザーにはプロファイルがあり、プロファイルはユーザーに属しています。私がこれを行った理由は、テーブルをシンプルにし、コントローラーをそれぞれ小さくしたかったためです。たとえば、UserControllerはログイン、パスワードを忘れたなどを処理し、ProfileControllerは編集、プロファイルビューなどを処理します。
投稿、コメント、友達など、他のモデルにリンクすると、ジレンマに陥りました。
現在、user_id外部キーを介してユーザーにPostaとコメントを送信し、クエリのcontainを使用してプロファイル情報を取得しますが、Friendsの場合はプロファイルIDを介してリンクします。
では、より良いオプションは何でしょうか?プロファイルIDを介してリンクする方が関連性が高く、将来的にユーザーがグループやページ(Facebookなど)などの追加のものを持っている場合は、プロファイルにリンクされているものとプロファイルにリンクされているものを区別するのが難しいようです。同じユーザーのグループまたはページにリンクされています。
これは少し未解決の質問ですが、特にパフォーマンスとコードの効率に関して、他の人がそこで考えを共有できれば役立つでしょう。