powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / рекурсия
11 сообщений из 11, страница 1 из 1
рекурсия
    #33628304
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. как часто на практике встречается необходимость использовать рекурсивные запросы?
2. как часто в схеме базы появляються циклы зависимостей таблиц?
...
Рейтинг: 0 / 0
рекурсия
    #33628573
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Никогда! Т.е. поскольку мой сервер их не поддерживает, то я и проектирую так, что бы они не понадобились.
...
Рейтинг: 0 / 0
рекурсия
    #33628822
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищите например Connect by на форуме Оракле.

2 Cat2
Что, никаких составов изделий, оргструктур, классификаций документов, ...?
...
Рейтинг: 0 / 0
рекурсия
    #33628882
nnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теория1. как часто на практике встречается необходимость использовать рекурсивные запросы?
2. как часто в схеме базы появляються циклы зависимостей таблиц?

Зависит от задачи и как реализована схема данных, но полностью
всеравно неизбавиться. Я небоюсь рекурсии поэтому использую часто
Сейчас делаю систему документооборота, взаимосвязи документов, обрабатываю рекурсивными процедурами.
...
Рейтинг: 0 / 0
рекурсия
    #33629630
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Никогда! Т.е. поскольку мой сервер их не поддерживает, то я и проектирую так, что бы они не понадобились.

Прикалываешься?

А как же "деревянные" сущности? План счетов, хотя-бы. Или дерево подчинения сотрудников (у кого желтые штаны, и кто кому сколько раз КУ говорить должен, а кто совсем - Пацак)?

Сервер то какой (СУБД)? Что, совсем хранимых процедур нет?
...
Рейтинг: 0 / 0
рекурсия
    #33630347
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теория1. как часто на практике встречается необходимость использовать рекурсивные запросы?
Хм. Необходимость в плане "никак иначе не обойтись" - никогда не встречается. Если же говорить об удобстве - встречается не слишком часто, но когда встречается, оказывается резко удобнее альтернатив.

теория2. как часто в схеме базы появляються циклы зависимостей таблиц?
В OLTP-системах - практически всегда. Во всяком случае, я бы не надеялся найти реальную серьезную систему, в которой их нет. В DWH - как минимум ориентированные циклы присутствуют редко, скорее даже почти никогда.
...
Рейтинг: 0 / 0
рекурсия
    #33630970
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Иерархические структуры встречались. Запросы не встречались. :)
В тех задачах, которые я решал, можно было обойтись несколькими таблицами один - ко-многим - ко-многим - ко-многим...
Я не утверждаю, что это можно сделать всегда. Просто так у меня судьба сложилась.
...
Рейтинг: 0 / 0
рекурсия
    #33631727
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Иерархические структуры встречались. Запросы не встречались. :)
В тех задачах, которые я решал, можно было обойтись несколькими таблицами один - ко-многим - ко-многим - ко-многим...
Я не утверждаю, что это можно сделать всегда. Просто так у меня судьба сложилась.

Из истории стандартов SQL:

Год Название Алиас Комментарии
1986 SQL-86 SQL-87 Впервые опубликован ANSI. Ратифицирован ISO in 1987.
1989 SQL-89 Небольшие изменения.
1992 SQL-92 SQL2 Существенные изменения.
1999 SQL:1999 SQL3 Добавлены регулярные выражения, рекурсивные апросы, триггеры и некоторые обьекто-ориентированные нововведения.
2003 SQL:2003 Обьявлены XML-зависимые нововведения.

---

Существуют запросы, которые нельзя сформулировать на чистом SQL(т.е. рекурсивные запросы). Чтобы выполнить такие запросы, нам необходим конечный язык, обладающий большей мощностью выразительности, чем SQL.
Обычно в СУБД для этих целей добавляют некое процедурное расширение (PL/SQL; PSQL; TSQL ...)
Почему я и спросил про СУБД (какую используем)...
...
Рейтинг: 0 / 0
рекурсия
    #33631942
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теория1. как часто на практике встречается необходимость использовать рекурсивные запросы?

до того как в оракле появилась сортировака внутри уровня
order siblings by
рекурсия была абсолютно необходима
...
Рейтинг: 0 / 0
рекурсия
    #33633674
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
на мой взгляд, сейчас здесь идет более содержательная дискуссия об иерарархии

http://www.sql.ru/forum/actualthread.aspx?tid=275875
...
Рейтинг: 0 / 0
рекурсия
    #33633807
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR2 Cat2
Что, никаких составов изделий, оргструктур, классификаций документов, ...?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
declare @n int
set @n =  0 
while exists (select itemid from _MRPNODES where st =  0  )
begin
-- Raw materials

insert into _MRPNODES (compnenttype, lowlevel, itemid,qty,st)
select  1 , @n, b.componentid, b.cqty*p.qty/b.pqty, 1 
from _MRPNODES p inner join BOM b on b.productid = p.itemid 
where p.st= 0  and b.componenttype =  1 

-- products 

insert into _MRPNODES (compnenttype, lowlevel, itemid,qty,st)
select  2 , @n+ 1 , b.componentid, b.cqty*p.qty/b.pqty, 0 
from _MRPNODES p inner join BOM b on b.productid = p.itemid 
where p.st= 0  and b.componenttype =  2 

update _MRPNODES set st= 1  where lowlevel = @n
set @n = @n +  1 

end
Это типичная развертка BOM (Bill of Materials), состава изделия. без рекурсий.


Код: plaintext
...where left(d.acntno,len(a.acntno)) = a.acntno
Это типичный подсчет итогов по агрегатному счету.

Все в системах есть. Только рекурсий нет.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / рекурсия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]