<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на: ORM. Коротко и ясно</title>
	<atom:link href="http://brotkin.ru/2009/02/01/orm/feed/" rel="self" type="application/rss+xml" />
	<link>http://brotkin.ru/2009/02/01/orm/</link>
	<description>ковыряемся в Internet</description>
	<lastBuildDate>Mon, 30 Jan 2012 23:38:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>От: demoriz</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-1369</link>
		<dc:creator>demoriz</dc:creator>
		<pubDate>Sat, 29 May 2010 11:34:54 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-1369</guid>
		<description>http://www.redbeanphp.com
интересный экземпляр ORM</description>
		<content:encoded><![CDATA[<p><a href="http://www.redbeanphp.com" rel="nofollow">http://www.redbeanphp.com</a><br />
интересный экземпляр ORM</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Александр</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-913</link>
		<dc:creator>Александр</dc:creator>
		<pubDate>Sat, 13 Mar 2010 21:05:17 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-913</guid>
		<description>Ошибка:
$article = new Article_Model(10);
$article-&gt;add(ORM::factory(&#039;category&#039;, 1);

Надо:
$article = new Article_Model(10);
$article-&gt;add(ORM::factory(&#039;category&#039;, 1));

;)</description>
		<content:encoded><![CDATA[<p>Ошибка:<br />
$article = new Article_Model(10);<br />
$article-&gt;add(ORM::factory(&#8216;category&#8217;, 1);</p>
<p>Надо:<br />
$article = new Article_Model(10);<br />
$article-&gt;add(ORM::factory(&#8216;category&#8217;, 1));<br />
 <img src='http://brotkin.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Игорь</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-97</link>
		<dc:creator>Игорь</dc:creator>
		<pubDate>Fri, 02 Oct 2009 18:59:48 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-97</guid>
		<description>Хранимые процедуры вызываются посредством SQL запроса.
Например, select * from Procedure_name(arg1, arg2, arg3). Так что можно вызвать хранимку через $db-&gt;query(). Да и можно в модели воспользоваться нативным PHP.

pg_connect
pg_query
pg_fetchXXXX

Даже получал в одном запросе курсор, фетчил его, и в другом запросе закрывал.

Благодарю за ответы. Пойду ознакомлюсь с содержимым тега.</description>
		<content:encoded><![CDATA[<p>Хранимые процедуры вызываются посредством SQL запроса.<br />
Например, select * from Procedure_name(arg1, arg2, arg3). Так что можно вызвать хранимку через $db-&gt;query(). Да и можно в модели воспользоваться нативным PHP.</p>
<p>pg_connect<br />
pg_query<br />
pg_fetchXXXX</p>
<p>Даже получал в одном запросе курсор, фетчил его, и в другом запросе закрывал.</p>
<p>Благодарю за ответы. Пойду ознакомлюсь с содержимым тега.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: ruX</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-96</link>
		<dc:creator>ruX</dc:creator>
		<pubDate>Fri, 02 Oct 2009 11:39:07 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-96</guid>
		<description>Спасибо вам  :!:
Разобрался, во многом благодаря этому вашему посту
http://brotkin.ru/2009/04/18/orm-svyazi/</description>
		<content:encoded><![CDATA[<p>Спасибо вам  <img src='http://brotkin.ru/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /><br />
Разобрался, во многом благодаря этому вашему посту<br />
<a href="http://brotkin.ru/2009/04/18/orm-svyazi/" rel="nofollow">http://brotkin.ru/2009/04/18/orm-svyazi/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-95</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Fri, 02 Oct 2009 09:09:01 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-95</guid>
		<description>1. Да
2. Не констант, а свойств. Они могут быть переопределены у потомков.
3. Данные свойства отвечают за связи модели с другими моделями. Есть еще дополнительные свойства, описывающие саму модель (например $table_name или $primary_key). Посмотрите статьи с тэгом &quot;ORM&quot;, там все описано.
4. Это желательно, но не всегда так уж необходимо. ORM (особенно в Ko3) достаточно гибок, можно указывать имена таблиц, первичных и внешних ключей и т.д.

Доп. вопросы:
1. См. ответ №4
2. Насколько я знаю, хранимые процедуры не могут вызываться через методы объекта Database (поправьте меня, если ошибаюсь). Но не забывайте, что ORM по сути остается моделью, и в ней можно создавать свои методы для работы с СУБД, в том числе для вызова хранимых процедур.</description>
		<content:encoded><![CDATA[<p>1. Да<br />
2. Не констант, а свойств. Они могут быть переопределены у потомков.<br />
3. Данные свойства отвечают за связи модели с другими моделями. Есть еще дополнительные свойства, описывающие саму модель (например $table_name или $primary_key). Посмотрите статьи с тэгом &#8220;ORM&#8221;, там все описано.<br />
4. Это желательно, но не всегда так уж необходимо. ORM (особенно в Ko3) достаточно гибок, можно указывать имена таблиц, первичных и внешних ключей и т.д.</p>
<p>Доп. вопросы:<br />
1. См. ответ №4<br />
2. Насколько я знаю, хранимые процедуры не могут вызываться через методы объекта Database (поправьте меня, если ошибаюсь). Но не забывайте, что ORM по сути остается моделью, и в ней можно создавать свои методы для работы с СУБД, в том числе для вызова хранимых процедур.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Игорь</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-94</link>
		<dc:creator>Игорь</dc:creator>
		<pubDate>Fri, 02 Oct 2009 06:43:39 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-94</guid>
		<description>Здравствуйте. Благодарю за описание. Немного прояснило ситуацию, а то я уже три дня ломаю голову, что это за зверь такой, ORM.

Можно несколько вопросов?
1. Правильно ли я понял, что на каждую таблицу должна быть создана своя модель?
2. Модель создаётся путём прописывания в ней защищённых констант, которые объявляют ключи для связей с другими таблицами?
3. Имена этих констант предопределены:
has_one
has_many
belongs_to
has_and_belongs_to_many ?
4. Для того, чтобы эффективно работать с ORM БД должна быть спроектирована специальным образом?

Если я всё правильно понял, то ещё вопросы:
1. Если БД достаточно большая, и была спроектирована без учёта требований ORM, есть ли смысл притягивать сюда ORM?

2. Моей стандартной практикой является написание хранимых процедур, через которые у меня идёт и выборка, и вставка, и редактирование, и удаление. Получается некий слой абстракции, да ещё и средствами СУБД можно следить за правами. Я не вижу выгод при отказе от своей практики, и переходе на ORM. И дело даже не в том, что на освоение ОRM уйдёт время, просто в хранимых функциях я могу использовать все средства, предоставляемые мне РСУБД.</description>
		<content:encoded><![CDATA[<p>Здравствуйте. Благодарю за описание. Немного прояснило ситуацию, а то я уже три дня ломаю голову, что это за зверь такой, ORM.</p>
<p>Можно несколько вопросов?<br />
1. Правильно ли я понял, что на каждую таблицу должна быть создана своя модель?<br />
2. Модель создаётся путём прописывания в ней защищённых констант, которые объявляют ключи для связей с другими таблицами?<br />
3. Имена этих констант предопределены:<br />
has_one<br />
has_many<br />
belongs_to<br />
has_and_belongs_to_many ?<br />
4. Для того, чтобы эффективно работать с ORM БД должна быть спроектирована специальным образом?</p>
<p>Если я всё правильно понял, то ещё вопросы:<br />
1. Если БД достаточно большая, и была спроектирована без учёта требований ORM, есть ли смысл притягивать сюда ORM?</p>
<p>2. Моей стандартной практикой является написание хранимых процедур, через которые у меня идёт и выборка, и вставка, и редактирование, и удаление. Получается некий слой абстракции, да ещё и средствами СУБД можно следить за правами. Я не вижу выгод при отказе от своей практики, и переходе на ORM. И дело даже не в том, что на освоение ОRM уйдёт время, просто в хранимых функциях я могу использовать все средства, предоставляемые мне РСУБД.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-93</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Thu, 01 Oct 2009 14:03:08 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-93</guid>
		<description>Согласно конвенции ORM, промежуточная таблица должна называться genres_movies (т.к. буква g находится по алфавиту до буквы m). Также не забывайте, что имена таблиц должны быть во множественном числе.
Метод add() предназначен для работы со связями много-ко-многим, в данном случае фактически он вставляет в промежуточную таблицу запись с article_id=10, category_id=1.</description>
		<content:encoded><![CDATA[<p>Согласно конвенции ORM, промежуточная таблица должна называться genres_movies (т.к. буква g находится по алфавиту до буквы m). Также не забывайте, что имена таблиц должны быть во множественном числе.<br />
Метод add() предназначен для работы со связями много-ко-многим, в данном случае фактически он вставляет в промежуточную таблицу запись с article_id=10, category_id=1.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: ruX</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-92</link>
		<dc:creator>ruX</dc:creator>
		<pubDate>Thu, 01 Oct 2009 13:53:26 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-92</guid>
		<description>Здравствуйте.
действительно коротко и ясно, спасибо - многие вещи оказались очень простыми.
Вот только по отношению многие-ко-многим не очень понял.
допустим есть таблицы movie(id, caption, year) и genre(id, genre)
Как тогда поступить?
Третья таблица movie_genre(movie_id, genre_id).
А как это объяснить ORM&#039;у?

В Вашем примере
    $article = new Article_Model(10);
    $article-&gt;add(ORM::factory(&#039;category&#039;, 1);
вообще не очевидно что происходит...  :?</description>
		<content:encoded><![CDATA[<p>Здравствуйте.<br />
действительно коротко и ясно, спасибо &#8211; многие вещи оказались очень простыми.<br />
Вот только по отношению многие-ко-многим не очень понял.<br />
допустим есть таблицы movie(id, caption, year) и genre(id, genre)<br />
Как тогда поступить?<br />
Третья таблица movie_genre(movie_id, genre_id).<br />
А как это объяснить ORM&#8217;у?</p>
<p>В Вашем примере<br />
    $article = new Article_Model(10);<br />
    $article-&gt;add(ORM::factory(&#8216;category&#8217;, 1);<br />
вообще не очевидно что происходит&#8230;  <img src='http://brotkin.ru/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-91</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 16 Feb 2009 04:24:59 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-91</guid>
		<description>Как говорится, Кесарю - кесарево ;)
Иногда действительно проще сделать $this-&gt;db-&gt;query();</description>
		<content:encoded><![CDATA[<p>Как говорится, Кесарю &#8211; кесарево <img src='http://brotkin.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Иногда действительно проще сделать $this->db->query();</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Slaver</title>
		<link>http://brotkin.ru/2009/02/01/orm/comment-page-1/#comment-90</link>
		<dc:creator>Slaver</dc:creator>
		<pubDate>Sun, 15 Feb 2009 21:56:52 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=156#comment-90</guid>
		<description>ORM удобен, но невсегда. При сложных запросах формировать цепочки зависимостей практически невозможно.
По мне идеальный вариант что-нибудь типа &lt;a href=&quot;http://en.dklab.ru/lib/DbSimple/&quot; rel=&quot;nofollow&quot;&gt;DbSimple&lt;/a&gt;. Надо будет подумать, как прикрутить его к Kohana.</description>
		<content:encoded><![CDATA[<p>ORM удобен, но невсегда. При сложных запросах формировать цепочки зависимостей практически невозможно.<br />
По мне идеальный вариант что-нибудь типа <a href="http://en.dklab.ru/lib/DbSimple/" rel="nofollow">DbSimple</a>. Надо будет подумать, как прикрутить его к Kohana.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

