最佳答案
在阅读了 T.Otwell 关于 Laravel 中良好设计模式的书后,我在 Laravel 4中创建了一个应用程序,我发现自己为应用程序上的每个表创建了存储库。
我最终得到了以下表结构:
我有所有这些表的具有查找、创建、更新和删除方法的存储库类。每个存储库都有一个与数据库交互的 Eloquent 模型。关系是根据 Laravel 的文档 http://laravel.com/docs/eloquent#relationships在模型中定义的。
当创建一个新的课程时,我所做的就是调用 CourseRepository 上的 create 方法。这门课有作业,所以在创建作业的时候,我还想在分数表中为这门课的每个学生创建一个条目。我通过分配存储库完成这项工作。这意味着赋值存储库与两个 Eloquent 模型通信,分配和学生模型。
我的问题是: 由于这个应用程序的规模可能会增长,更多的关系将被引入,这是一个良好的做法,通信与不同的雄辩模型在仓库或应该这样做,而是使用其他仓库(我的意思是调用其他仓库从分配仓库)或应该在雄辩模型所有一起完成?
此外,使用分数表作为作业和学生之间的轴心是否是一种好的做法,还是应该在其他地方使用?