Laravel 4 でアンケートを書いていますが、ユーザーが同じアンケートに何度も回答できるようにする必要があります (また、回答を別のインスタンスとして保存することもできます)。
現在、ユーザーを招待された調査にリンクする、survey_user というピボット テーブルがあります。ピボット テーブルの潜在的に良い副作用は、その主キーを使用して一意の調査インスタンスを作成できることです。
私の問題は、具体的にはユーザーモデルを通じて、答えを得る方法を考え出すことです. Answers テーブルには、ピボット テーブルのプライマリへの外部キーが含まれます。
私のユーザーモデル:
class User extends Eloquent {
public function surveys() {
return $this->belongsToMany('Survey', 'survey_user')
->withPivot('id', 'completed_at');
}
public function answers() {
// This should return all of the user's answers, irrespective of
// survey id's.
}
}
テーブル:
surveys: id
users: id
survey_user: id, survey_id, user_id, completed_at
answers: survey_user_id, answer_text, ...
どうすればこの疑似関係を達成できますか、またはおそらくより良い構造化方法ですか?