2009-08-09 2 views
2

Если мне нужно сохранить объект в базе данных, которая имеет отношения, у меня есть, что dao выполняет все само сохранение или делегировать другим DAO. Если он должен делегировать другим DAO, это должно быть сделано в самом DAO или в слое выше (например, на уровне обслуживания)? Я бы использовал ORM для этого, за исключением того, что в PHP ничего хорошего пока не существует.Один большой DAO или несколько более мелких?

ответ

4

Я думаю, что ответ зависит от владения.

Если родитель владеет детьми, и нет возможности создать ребенка без родителя, тогда он должен быть просто ParentDao и вообще не иметь ChildDao.

Если вы можете создать Ребенка без родителя, вам понадобится ChildDao для его операций с CRUD. В этом случае вы можете иметь ParentDao собственную ссылку на ChildDao и отложить операции Child CRUD с ним.

0

Я согласен с ответом duffymo - но я заинтересован, чтобы ваше заявление

Я хотел бы использовать ОРМ за это, за исключением того, что в PHP, ничего хорошего пока не существует

Я использовал оба Doctrine и Propel и нашли, что они оба очень способны. Мое личное предпочтение - Доктрина, хотя в Propel 1.3 было внесено значительное улучшение.

+0

Я действительно очень надеюсь на Doctrine 2.0, но мне действительно нужна прозрачная настойчивость, которую не предлагают ни Doctrine <2.0, ни Propel. Мне в основном нужно что-то большее, чем Hibernate. – blockhead

Смежные вопросы