2011-06-04 75 views
0

这是我之前的问题的后续行动:Should dependent rows be fetched in the Model or the Controller?应该在模型或模型映射器中获取子对象吗?

让我们说一个赞助人可以检查出书籍。如果给出一个赞助对象,他们在哪里以及应该如何检出这些图书?

这里有一些可能性,我认为:

  • 在赞助模式,添加getBooks方法
  • 当顾客被实例化,自动获得它的书籍,并将其存储为books财产
  • 在PatronMapper中创建一个叫做getBooks的方法,需要一个赞助人ID

你会推荐什么?谢谢你,

回答

1

我建议你去的:

When a Patron is instantiated, automatically get its books and store it as the books property 

这样,您就不必手动担心

+0

我一直认为,这是应该做的正确方法,但是:假设我有一个列出数据库中所有Patron对象的页面。这个页面并不关心什么书籍赞助人已经签出。在这种情况下实例化每个Patron对象也会产生大量不需要显示页面的数据库请求。这是我被撕掉的部分。 – 2011-06-04 16:06:40

+1

这很简单,只是让构造函数接受一个bool参数。当你做'新顾客(假)'时,'它不会加载它的书籍。默认'新的赞助人();'将 – dynamic 2011-06-04 16:08:24

+0

这是有道理的,谢谢! – 2011-06-04 16:16:11