Symfony2 でアプリケーションを構築し、Doctrine を ORM として使用しています。
ユーザーは、ユーザー固有の構成/設定をかなり多く保存する必要があります (保存する設定の典型的な例として、「私たちからのメールを受け取りますか?」と考えてください)。
これを構築するための最良の方法は何ですか?
各設定のユーザー エンティティにプロパティを追加する必要がありますか?
protected $receiveEmails;
または、ユーザー オブジェクトとの manyToMany 関係を持つ「userSetting」エンティティを作成し、userSetting エンティティに他の 2 つのプロパティを持たせる必要があります。
protected $setting;
protected $value;
?
質問する主な理由はパフォーマンスです。特定の設定をブール型、その他の文字列などにすることができるように、ユーザーオブジェクトにプロパティを設定することをお勧めしますが、現在のユーザーエンティティを取得するたびに、サイトにこれらの値をデータベースからフェッチさせたくありません (ほぼすべての私の認証は私のデータベースのユーザーエンティティをバックオフするため)。
答えは何ですか?戻って、次の使用のインスタンスを書き直す必要がありますか?
....getRepository('AcmeMainBundle:User')->find($id)
その状況に必要な要素のみを選択するカスタム リポジトリ機能を使用しますか?
または、最適化しすぎていますか?