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