<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1318440</guid>
        <pubDate>Fri, 27 Oct 2006 07:45:00 +0000</pubDate>
        <title>Деревья</title>
        <link>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1318440</link>
        <description><![CDATA[Romkin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=158569&view=findpost&p=1312852'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>n0rd &#064; <time class="tag-quote__quoted-time" datetime="2006-10-23T17:23:17+04:00">23.10.06, 13:23</time></span><div class='quote '>Собственно меня волнует что произойдет, при попытке двух клиентов добавить разные поддеревья в одно дерево одновременно. Перенумерации должны выполняться строго последовательно (неважно какая выполнится раньше, главное, чтобы для перенумерации, выполняющейся позже были видны изменения, которые внесла первая), иначе нарушится целостность структуры данных. Как этого добиться на Firebird 1.5? </div></div><br>
Тебя это не должно волновать :) Блокировки-то при изменении есть. То есть, транзакция, пытающаяся изменить данные, которые изменены активной транзакцией, получает отлуп. Если уж хочешь окончательной уверенности - блокируй таблицу...]]></description>
        <author>Romkin</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1313158</guid>
        <pubDate>Mon, 23 Oct 2006 15:56:08 +0000</pubDate>
        <title>Деревья</title>
        <link>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1313158</link>
        <description><![CDATA[jack128: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=158569&view=findpost&p=1312852'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>n0rd &#064; <time class="tag-quote__quoted-time" datetime="2006-10-23T13:23:17+00:00">23.10.06, 13:23</time></span><div class='quote '>Про nested sets написано, например, тут:</div></div><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=158569&view=findpost&p=1312852'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>n0rd &#064; <time class="tag-quote__quoted-time" datetime="2006-10-23T13:23:17+00:00">23.10.06, 13:23</time></span><div class='quote '><br>
Т.к. в программировании БД я практически ничего не понимаю</div></div><br>
нет в жизни счастья.. одни в программировании ничего не понимают, другие в английском...<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=158569&view=findpost&p=1312852'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>n0rd &#064; <time class="tag-quote__quoted-time" datetime="2006-10-23T13:23:17+00:00">23.10.06, 13:23</time></span><div class='quote '>перенумерация части вершин дерева </div></div><br>
нафиг? я те продложил простой способ безовсяких перенумераций..<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=158569&view=findpost&p=1312852'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>n0rd &#064; <time class="tag-quote__quoted-time" datetime="2006-10-23T13:23:17+00:00">23.10.06, 13:23</time></span><div class='quote '>Перенумерации должны выполняться строго последовательно (неважно какая выполнится раньше, главное, чтобы для перенумерации, выполняющейся позже были видны изменения, которые внесла первая)</div></div><br>
ну выполняй перенумерацию эту в контексте одной транзакции...]]></description>
        <author>jack128</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1312852</guid>
        <pubDate>Mon, 23 Oct 2006 13:23:17 +0000</pubDate>
        <title>Деревья</title>
        <link>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1312852</link>
        <description><![CDATA[n0rd: Про nested sets написано, например, тут:<br>http://ibase.ru/devinfo/DBMSTrees/9603d06.html<br>http://ibase.ru/devinfo/DBMSTrees/9604d06.html<br>http://ibase.ru/devinfo/DBMSTrees/9605d06.html<br><br>Сейчас происходит написание ТЗ и утрясание сопуствующих вопросов и я пока только прикидываю, как буду делать. Вариант без извращений, конечно, лучше, если заказчику не захочется каких-нибудь дополнительных извращений.<br><br>Т.к. в программировании БД я практически ничего не понимаю, у меня еще вопросец назрел:<br>Вставка поддерева в дерево, организованное с помощью вложенных множеств (тех самых nested sets) включает в себя две фазы: перенумерация части вершин дерева и, собственно, вставка новых вершин. Собственно меня волнует что произойдет, при попытке двух клиентов добавить разные поддеревья в одно дерево одновременно. Перенумерации должны выполняться строго последовательно (неважно какая выполнится раньше, главное, чтобы для перенумерации, выполняющейся позже были видны изменения, которые внесла первая), иначе нарушится целостность структуры данных. Как этого добиться на Firebird 1.5?]]></description>
        <author>n0rd</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1311321</guid>
        <pubDate>Sat, 21 Oct 2006 22:19:54 +0000</pubDate>
        <title>Деревья</title>
        <link>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1311321</link>
        <description><![CDATA[jack128: чесно говоря не в курсе, что такое Nested sets,но могу предложить структуру, типа такой:<br><br>  id Integer;<br>  parent_id integer;<br>  parent_path varchar(&lt;&gt;) <br>поле parent_path содержит полный путь к от корня к родителю текущего узла в строковом виде.<br>заполняется, естественно в триггере]]></description>
        <author>jack128</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1311293</guid>
        <pubDate>Sat, 21 Oct 2006 20:35:31 +0000</pubDate>
        <title>Деревья</title>
        <link>https://forum.sources.ru/index.php?showtopic=158569&amp;view=findpost&amp;p=1311293</link>
        <description><![CDATA[n0rd: Есть необходимость организовать хранение деревьев каталогов в БД. Структура должна быть оптимальной для быстрого нахождения пути от корня дерева до некоторого листа. <br>Пока думаю сделать хранение дерева с помощью Nested sets, там указанный поиск реализуется просто и работает вроде быстро, однако встает еще задача выбора всех потомков заданного узла, лежащих ровно на 1 уровень ниже этого узла (выборка всех файлов и подкаталогов заданного каталога) и как ее делать просто (а не сотней последовательных запросов, если таких потомков будет 100 штук) я что-то пока не догоняю. Есть у кого какой-нить опыт в этом деле?]]></description>
        <author>n0rd</author>
        <category>Базы данных: SQL</category>
      </item>
	
      </channel>
      </rss>
	