ORM только для "простых" несвязанных таблиц – стоит ли?

ORM только для "простых" несвязанных таблиц – стоит ли?

Долгое время использую класс DBO (Database Object), который является базовым для других классов модели. DBO содержит методы Select / Insert / Update / Delete, конструктор, которому передаются имя таблицы, имя первичного ключа и некоторые другие значения. Со временем к классу DBO стали появляется дополнительные требования. Захотелось научить его форматировать дату, не обновлять некоторые поля при SQL запросе и т.д. Описанные проблемы решил путем добавления XML конфига для каждого класса, в котором содержаться описания таблицы и ее полей, но раз уж взялся за обновление, решил проконсультироваться с людьми, которые, возможно, достигли больших успехов в данном вопросе. Интересен, в первую очередь, личный опыт и проблемы / решения, с которыми вы столкнулись.

Пока что сомневаюсь в рациональности применения ORM для моделей 1:M и M:N. Для выборки из 5-6 таблиц мне проще составить один запрос, чем манипулировать с объектами.
 

fisher

накатила суть
>>Для выборки из 5-6 таблиц мне проще составить один запрос,
>>чем манипулировать с объектами
да, на мой взгляд это тоже абсолютно нерационально. единственный выход (ущербный имхо, по нему пошел hibernate ) - объектный язык запросов(OQL) но тебе придется делать грамматический разбор, трансляцию в SQL и назад - что геморрой.
грех, конечно, на себя ссылаться, но прочти на http://orm.net.ru/fisher/phpclub-may2004/ про плюсы и минусы ORM
 
Уже читал в одном из номеров PHP!nside. Так же перекопал весь orm.net.ru и ознакомился с основными наработками под Perl и PHP, встретил много разных решений и реализаций. До сих пор не могу определиться, рационально ли использовать класс-менеджер CRUD объектов, стоит ли создавать класс, умеющий конструировать where запросы, нужно ли этот класс объединить с классом для конструирования limit и orderby. В общем, как всегда вопросов много, а ответов мало.
 

fisher

накатила суть
число вариационных параметров слишком велико чтобы ответить на

>>рационально ли использовать класс-менеджер CRUD объектов
в зависимотсти от
>>стоит ли создавать класс, умеющий конструировать where запросы
в зависимости от
>>нужно ли этот класс объединить с классом для конструирования limit и orderby
думаю, да

но IMHO это не совсем правильные вопросы. правильные вопросы начинаюстся с "при каких условиях" . самое хреновое начнется если нужно будет конструировать много экстравагантных запросов, а твоя приблуда этого не сумеет. или будет делать так, что в коде будет каша. или будет, но в результате приложение будет работать слишком медленно. чтобы ответить на эти вопросы, надо знать специфику задачи. IMHO орм хорош в одном случае - быстрая разработка типовых решений на базе ограниченного и заранее оговоренного числа моделей. такие проекты есть, их много. опыт успешного применения этого дела есть.
 
Покопался в книгах. Выбираю между активной записью и маппером, описанных Фаулером.
 
Сверху