2011-08-01 10 views
0

私は、HABTMの関係によって互いに関連しているいくつかのモデルを持っています。Cakephpモデルのデータ検索

ワークアウトには多くの練習問題があります。 練習には多くの練習問題があります。 練習には1つのログがあります。あなたが見ることができるように 、USER_IDとworkout_idが一意ではないが: ユーザーは、これらのテーブル関係のすべてのテーブルに設定されている私がやりたい何

exercise_workouts table

が多くExercises_Workouts

を持っていますexercise_idとlog_idは常に一意になります。

1人のユーザーのデータを検索し、すべてのトレーニングを行い、すべてのエクササイズとそれに対応する情報、および各エクササイズのログ情報を返します。

最終出力は次のようになります。

enter image description here

私はいくつかの方法を試してみましたし、それらのどれも肯定的な結果を返しませんでした。私は自分自身よりもずっと経験豊かな人がこのような状況をどのように処理するのか聞いてみたいと思います。私が考え得る唯一のことは、複数のSELECTステートメントが必要なものを得ることができるということです。

ご協力いただきありがとうございます。 よろしく!

答えて

0

ありがとうございました。私は自分の答えを見つけ出すことになった。

これらのすべてが1つのテーブルになければならない理由は、これらのすべてのブランチに関連する単一のIDにアクセスできる必要があるということです。また、各ブランチは、参照のみ更新されるべきではない。私がやったことは、封じ込める行動を使うことです。私は実際に自分のコードを見てこの答えを見つけました。私はこの問題を早期に発見したという卑劣な疑念を持っていました。

封じ込めることができたことで、私は以前よりも自分の結びつきを深く知ることができました。 元々、私はWorkout-> Exercise-> Logからデータを取得していましたが、LogDay(個々のエントリ)も必要でした。だから私は、そのデータを取得し、他の不要なデータを削除するために、包含可能な動作を使用しました。

もう一度ありがとうございます!

0

"これらのテーブル関係はすべて1つのテーブルに設定されています":そのテーブルは何と呼びますか?それは、関係を定義する通常の方法ではありません。

"エクササイズには多くのエクササイズがあります|エクササイズには1つのログがあります|エクササイズには多くのエクサイズワークスがあります:エクササイズHABTMエクササイズ(ログが他のテーブルに接続されていない場合はエクササイズテーブルのフィールドを含む)、ユーザhasManyワークアウト。

私はいくつかの方法を試みましたが、いずれも肯定的な結果を返していません。私は自分自身よりもずっと経験豊かな人がこのような状況をどのように処理するのか聞いてみたいと思います。私が考え得る唯一のことは、複数のSELECTステートメントが必要なものを得ることができるということです。

SQL、PHP、およびCakePHPにどれくらい精通していますか?もしあなたがそれらすべてに新しい人であれば、あなたが望むことをやる方法を説明するのはちょっと難しいです。あなたがこれまで使ってきたアプローチを教えてください。

関連する問題