私は OOPHP の学習過程にあり、「ベスト プラクティス」のアドバイスを探しています。
リレーショナル データベースでは、多くのテーブルに明らかに外部キーがあります。サイトのモデルを作成しているときに、モデルで JOIN クエリを実行する方がよいのか、それとも 1 つのモデルで別のモデルを呼び出す方がよいのかを判断しようとしています。
他のモデルを呼び出すと、コードのモジュール性が保たれるようです。どちらの方法でも、別のテーブルであろうと別のモデルであろうと、依存関係を作成しているようです。
「他のモデルを呼び出す」アプローチを使用すると、別の問題、つまり無限ループに遭遇するようです。これが私が実行している例です。私は2つのテーブルを持っていperson
ますschool
. それぞれperson
に で表されるお気に入りの学校がありschoolId
ます。それぞれschool
にprincipal
、つまり がありpersonId
ます。
person
行がマップされるオブジェクトは、そのコンストラクターでオブジェクトを受け入れますschool
がschool
、学校の行がマップされるperson
オブジェクトは、そのコンストラクターでオブジェクトを受け入れます。
私が見つけたものから、遅延読み込みに関する何かが解決策のようですが、(私が間違っている可能性があります) それを行うと、PHP の型ヒントを使用できないようです。
(多くの人が Doctrine のような ORM ツールを提案してくれると思いますが、それは私が将来必ず検討するものです。学習曲線が急勾配であると想定されているため、またそれらのツールをよりよく理解していると感じているため、今は避けています。後で自分で試してみると)