2012-04-14 6 views
0

私のアプリケーションでは、ユーザーとプロファイルという2つのテーブルがあります。ユーザーにはプロファイルがあり、プロファイルはユーザーに属します。私がこれをしたのは、テーブルをシンプルに保つため、コントローラーをそれぞれ小さくするためでした。 UserControllerはログインを処理し、パスワードを忘れてしまい、ProfileControllerが編集、プロフィール表示などを処理します。CakePHP:別のテーブルのユーザーとプロファイル

投稿やコメントや友達私はジレンマに遭遇しました!

現在、user_idの外部キーを使用してユーザーにポスタとコメントを入力し、クエリのcontainsを使用してプロファイル情報を取得しますが、フレンズの場合はプロファイルID経由でリンクします。

だから、もっと良い選択肢は何ですか?より関連性の高い、将来的にユーザーが追加の情報を持っている場合は、プロファイルIDをリンクするほうがよいように見えるので、プロファイルにリンクされているものと、リンクされているものとを区別するのは難しいでしょう同じユーザーのグループまたはページにリンクされています。

これはややオープンな質問ですが、他の人が考え、特にパフォーマンスとコードの効率性を分かち合うことができれば助けになるでしょう。

+0

ユーザHasOneプロフィールは私の設定です。ユーザーは1つしか持てないので。だからあなたが2つのモデルにそれらの機能性を分けているなら、あなたはそれをHasMany関係にしてはいけません。私もプライマリキーと同じIDを使用しています(プロファイルはユーザーのものを使用します)。この方法では、結合は非常に簡単でオーバーヘッドはほとんどありません。 – mark

答えて

3

プロファイルIDを使用して友だちをリンクすると、(友だちはusersテーブルの再帰的な関係なので)私には意味がありません。

+0

はい、それはアカウントの権利ではなく友人のプロファイルですか?また、ユーザーは、プロファイルだけでなく、ページやイベントなどの他の潜在的なオブジェクトの親アカウントです。 – Cameron

+0

私は完全にマイルに同意します。 – mark

+0

@mark投稿者と自分の関係を持つ可能性のある他のオブジェクトの潜在的な「他の」オブジェクトについて私が言ったことに基づいて、理由を詳しく説明できますか? – Cameron

関連する問題