一个大 DAO 还是多个较小的 DAO?
Posted
技术标签:
【中文标题】一个大 DAO 还是多个较小的 DAO?【英文标题】:One big DAO or multiple smaller ones? 【发布时间】:2010-11-18 02:29:24 【问题描述】:如果我必须将一个对象保存到具有关系的数据库中,我是让那个 dao 自己完成所有保存,还是委托给其他 DAO。如果它应该委托给其他 DAO,应该在 DAO 本身中完成,还是在上面的层(如服务层)中完成? 我会为此使用 ORM,除了在 php 中,还没有什么好东西。
【问题讨论】:
【参考方案1】:我认为答案取决于所有权。
如果 Parent 拥有 Children,并且没有 Parent 就不可能创建 Child,那么它应该只是 ParentDao 而根本没有 ChildDao。
如果您可以在没有父级的情况下创建子级,则需要 ChildDao 来执行其 CRUD 操作。在这种情况下,您可以让 ParentDao 拥有对 ChildDao 的引用并将 Child CRUD 操作推迟到它。
【讨论】:
【参考方案2】:我同意 duffymo 的回答——但对你的说法很感兴趣
我会为此使用 ORM,除了在 PHP 中,还没有什么好东西存在
我用过Doctrine 和Propel 并且发现它们都非常有能力。我个人的偏好是 Doctrine,尽管 Propel 1.3 已经进行了大量改进
【讨论】:
我其实很期待 Doctrine 2.0,但我真的需要透明的持久性,这既不是 Doctrine以上是关于一个大 DAO 还是多个较小的 DAO?的主要内容,如果未能解决你的问题,请参考以下文章