クリーンな解決策を見つけるのに苦労しているシナリオがあります。私の CakePHP アプリには、User と Survey モデルがあります。アイデアは、管理者が調査を作成し、それらをユーザーに割り当てることができるということです。その後、ユーザーは調査に (複数回) 回答することができ、それらの回答は保存されます。
現在、Response モデルを作成し、hasMany/belongsTo を介して Responses をユーザーに関連付けることを計画しています。簡単。問題は、調査をユーザーに割り当てる際に発生します。ユーザーは複数の調査に回答できるようになるため、関連付けのために「survey_id」列をユーザー テーブルに追加しようとしても意味がありません。
最も理にかなっているのは、id、survey_id、および user_id 列を持つ新しい survey_assignments テーブルです。
問題は、CakePHP のベスト プラクティスに固執して、この種の中間アソシエーション テーブルをきれいに処理する方法がよくわからないことです。私がしなければならないことは、単純な php/mysql ではかなり標準的ですが、単純な SQL クエリを避け、CakePHP の規則に沿ったものにしたいと考えています。
手動クエリを回避しながら、(潜在的にモデルのない) 関連テーブルを作成して操作するための最もクリーンな方法は何ですか?