次の例を検討してください。
+----------+--------+-------------+----------+
| Person_id| Person | Language_id | Language |
+----------+--------+-------------+----------+
| 1 | Bob | 5 | English |
| 1 | Bob | 3 | Italiano |
| 1 | Bob | 8 | Deutsch |
+----------+--------+-------------+----------+
クエリは次のとおりです(それほど重要ではありません。テーブル構造を表示するためのスクリプトです):
SELECT pl.Person_id, Person, Language_id, Language FROM people as p
LEFT JOIN people_languages as pl ON p.Person_id = pl.Person_id
LEFT JOIN languages as l ON pl.language_id = l.language_id
WHERE pl.Person = 1;
基本的に、このようにテーブルが構築されている場合、上記のようにすべての結果を取得してから、配列内の languages_id と languages を使用して Person モデルを作成する php 関数を作成するか、または を使用group_concat
して単一の行を取得し、次にlanguages と languages_id を配列に分解しますか?
ところで、私が何をするにしても、最後に次のように人物モデルを作成したいと思います。
class Person {
public $person_id; // 1
public $person; // Bob
public $language_id; // Array(5, 3, 8)
public $language; // Array(English, Italiano, Deutsch);
.
. // Functions
.
}