27 октября 2011 г. 22:14 пользователь Ivan Petrov <span dir="ltr"><<a href="mailto:i.petro.77.00@gmail.com">i.petro.77.00@gmail.com</a>></span> написал:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
> Это неправда. Нормальный ORM возвращает итератор, а объекты создаёт только<br>
> когда они действительно нужны.<br>
<br>
</div>это кстати несложно реализовать и в случае, если запросы человек<br>
писать будет.<br>
<br>
<br>
а насчет "нормальный ORM" покажите таковой, интересно.<br>
ну бог с ними с запросами которые он криво составляет. покажите хотя<br>
бы тот который будет скажем все варианты типов столбиков Pg<br>
использовать. хотя-бы hstore в нем. ну а дальше поговорим про место<br>
между клавиатурой и спикой кресла ;)<br></blockquote><div><br>Ваши "типы столбиков Pg" работают только в Pg. ORM призван абстрагировать разработчика от всех этих тонкостей. Тем более что в больнитстве задач оно нахрен не нужно.<br>
<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">> ORM -- это Object-relational mapping, а не конструктор запросов.<br>
<br>
</div>дык я с того и начал. основная моя идея такая:<br>
1. выкидываем нафиг конструктор запросов<br></blockquote><div><br>Его не надо выкидывать, его просто можно не использовать.<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

2. даем возможность человеку их удобно конструировать самому (потому<br>
что при пользовании ORM для человека это крайне труднодоступно)<br></blockquote><div><br>Вполне можно.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

3. даем возможность делать выборки в объекты, relational между<br>
которыми и в случае DBIC и в любом другом случае делаются вручную,<br>
посему автоматизация тут тоже нахрен не нужна.<br></blockquote><div><br>В ORM связи описываются вручную, это да. Но не "делаются вручную".<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

на выходе получаем профит.<br></blockquote><div><br>Профит должен быть измеряемым. Я с самого первого своего комментария прошу результаты тестов для оценки профита, а в ответ получаю какую-то муть про генератор запросов. В сравнении с выборкой данных генерирование запроса такая мелочь, что на неё даже стыдно обращать внимание.<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
PS: собственно я зачем сюда писал, я пытался выяснить может кто делал<br>
что подобное, а я велики тут городить взялся.<br>
вопрос я свой выяснил.<br></blockquote><div><br>Я собственно, почему вопросы задаю. Я так и не понял, какую проблему решает этот велосипед.<br><br>Я не зря написал, что после приведённого примера запроса дальнейший разговор не имеет смысла. Тот запрос практически никогда не нужен. Более того, даже если его разбить на несколько (сначала вынуть user'а, потом его роли, потом что-то там ещё), потери в производительности практически не будет.<br>
<br><br>Если же нужны какие-то сводные таблицы, то ORM здесь не подходит. Сводными таблицами и всякими другими отчётами занимаются специально обученные модули.<br><br><br><br>Ещё один немаловажный момент.<br><br>Написание собственного велосипеда это не только прикольно и интересно, но ещё и грустно и скучно. Грустно, потому что его нужно поддерживать самому, а это время и деньги. Скучно, потому что никто, кроме тебя о нём не знает, коммьюнити никакое.<br clear="all">
</div></div><br>-- <br>Andrei Protasovitski<br>< andrei[dot]protasovitski[at]gmail[dot]com ><br>Diemen, Netherlands<br>