Алексей Вишняков [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее:
news:[EMAIL PROTECTED]
Вы не могли бы развернуть ответ, пожалуйста?
Любой способ хранения дерва, базирующийся на ссылках так или иначе может
порождать рекурсию. Причём тут особо не важно ссылается родитель на детей
- Исходное сообщение -
От: Tonal [EMAIL PROTECTED]
Группы новостей: gmane.comp.db.firebird.russian
Кому: ru-firebird@googlegroups.com
Отправлено: 31 марта 2008 г. 17:14
Тема: Re: Бред рекурсивной кобылы
Ну и лови сценарий:
У Ивана Ивановича есть 2 подчинённых Маша и Петя.
Стартуем
Tonal [EMAIL PROTECTED] сообщил/сообщила в
новостях следующее: news:[EMAIL PROTECTED]
Ну и лови сценарий:
У Ивана Ивановича есть 2 подчинённых Маша и Петя.
Стартуем две параллельные транзакции.
В первой Петю подчиняем Маше, во второй Машу - Пете.
Комитем обе.
Как твоя проверка через СП в
ArtGal пишет:
У Ивана Ивановича есть 2 подчинённых Маша и Петя.
Стартуем две параллельные транзакции.
В первой Петю подчиняем Маше, во второй Машу - Пете.
Комитем обе.
Сработает только первый commit.
Второй получит еггог.
У тебя параллельно транзакции выполняются? Не точно не последовательно?
Hello, Tonal!
You wrote on Tue, 01 Apr 2008 16:55:47 +0700:
T Т.е. конфликт, цикл, при параллельном выполнении не создаётся из-за
T FK, а не из за явной проверки процедурой.
хлопцы, а чо так сложно то с процедурами!?
у меня проверка в триггере в цикле... или этого недостаточно?
create
Транзакции покороче делай, чтобы Петя Машу неуспел заподчинять :)
Не думаю я, что у тебя штатное расписания вбивают несколько операторов в
конкурентной среде.
_
С уважением, Андрей Могильный
Вы не могли бы развернуть ответ, пожалуйста?
01.04.08, Dmitry Voroshin [EMAIL PROTECTED] написал(а):
Есть способы хранения дерева исключающие рекурсию в принципе.
--
--
Norritt, mailto:[EMAIL PROTECTED]
Hello, Алексей!
Алексей Вишняков wrote:
Вы не могли бы развернуть ответ, пожалуйста?
01.04.08, Dmitry Voroshin [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
написал(а):
Есть способы хранения дерева исключающие рекурсию в принципе.
Уважаемый Алексей Вишняков, Вы не могли бы:
1.
Здравствуйте, Дмитрий.
То, что у Вас Outlook, и Вы не можете его настроить, никого не волнует.
Придерживайтесь, пожалуйста, общепринятых правил общения.
Виноват, это гмэйл такой, не Outlook. Так лучше?
--
--
Алексей Вишняков
Norritt, mailto:[EMAIL PROTECTED]
Здравствуйте, Алексей.
Вы писали 1 апреля 2008 г., 22:24:05:
Виноват, это гмэйл такой, не Outlook. Так лучше?
Значительно. :)
--
С уважением,
Владимир mailto:[EMAIL PROTECTED]
Разминался тут с деревами, и задумался о том, что положить дерево в
таблички мы могём, выбрать теперь тоже запросто (СТЕ - рулит), а вот
гарантировать, что в нашем дереве нет циклов так просто не получится... :-(
Надо при изменении или всю таблицу лочить (что жалко), или всё дерево -
что
Tonal [EMAIL PROTECTED] сообщил/сообщила в
новостях следующее: news:[EMAIL PROTECTED]
...
гарантировать, что в нашем дереве нет циклов так просто не получится...
:-(
...
Как так не получится?
Получается элементарными триггерами.
С 2002 года работает и не жужжит.
:-)
Наверное не очень красиво.
ArtGal пишет:
Как так не получится?
Получается элементарными триггерами.
С 2002 года работает и не жужжит.
:-)
Ну и лови сценарий:
У Ивана Ивановича есть 2 подчинённых Маша и Петя.
Стартуем две параллельные транзакции.
В первой Петю подчиняем Маше, во второй Машу - Пете.
Комитем обе.
Как твоя
Tonal ...
Разминался тут с деревами, и задумался о том, что положить дерево в таблички мы могём, выбрать теперь тоже запросто (СТЕ - рулит),
а вот гарантировать, что в нашем дереве нет циклов так просто не получится... :-(
Это смотря как дерево делать.
Надо при изменении или всю
Khorsun Vlad пишет:
Выноси (или дублируй) все связи parent-child всех уровней в
отдельную таблицу
и делай там PK\UK. Перед вставкой {a, b} пробуй вставить {b, a} - если
получилось,
значит цикла нет и после вставки {a, b} можно удалять {b, a}.
Не знаю, насколько такая схема жизнеспособна
Khorsun Vlad пишет:
Выноси (или дублируй) все связи parent-child всех уровней в
отдельную таблицу
и делай там PK\UK. Перед вставкой {a, b} пробуй вставить {b, a} - если
получилось,
значит цикла нет и после вставки {a, b} можно удалять {b, a}.
Не знаю, насколько такая схема жизнеспособна
16 matches
Mail list logo