我正在学习 OOPHP,我正在寻找一些“最佳实践”的建议。
对于关系数据库,许多表中显然存在外键。当我为我的站点创建模型时,我试图确定在模型中进行 JOIN 查询是否更好,或者让一个模型调用另一个模型?
调用其他模型似乎使代码更加模块化。无论是在另一个表上还是在另一个模型上,这两种方式似乎都会产生依赖关系。
如果我采用“调用其他模型”的方法,我似乎遇到了另一个问题:无限循环。这是我遇到的例子。我有 2 张桌子,person
并且school
. 每个person
人都有一个最喜欢的学校,用 . 表示schoolId
。每个school
都有一个principal
,那就是一个personId
。
person
行映射到的对象在其构造函数中接受对象school
,但school
学校行映射到的person
对象在其构造函数中接受对象。
根据我的发现,延迟加载似乎是解决方案,但是(我可能是错的)如果我这样做,我似乎不能使用 PHP 的类型提示。
(我猜很多人会向我推荐像 Doctrine 这样的 ORM 工具,这是我将来肯定会研究的东西。我现在正在避免它,因为它被认为是陡峭的学习曲线,而且因为我觉得我更了解这些工具以后如果我自己尝试一次)