Думал, что знаю SQL
9/2/10 18:24Позор джунглям!
Пилю Выбираю я дерево, знаю только синтаксис Оракла... и узнаю, что в SQL появились такие себе "подпрограммы"!
И от как оно выглядит (источник).
Пора на свалку.
Пункт второй.
В Hibernate давно уже думают - а не закодировать ли ORM для дерева, чтобы рекурсивное дерево можно было выбрать одним запросом.
И, конечно, всё никак не прикрутят.
Кто тоже забыл структуры данных — напоминаю: это делается минимум двумя способами, nested set/interval, и materialized path. В первом случае в записи хранятся ещё и индексы поддерева в отображении на отсортированный массив, а во втором - тупо путь к элементу.
Ещё можно, к примеру, проставить в записях их порядковые номера при обходе дерева. Автор статьи, правда, этого тоже не пробовал.
И от как оно выглядит (источник).
WITH n (level, id, name) AS
(SELECT 1, id, name
FROM emp
WHERE name = 'Goyal'
UNION ALL
SELECT n.level+1, nplus1.id, nplus1.name
FROM emp as nplus1, n
WHERE n.id = nplus1.manager_id)
SELECT name, level FROM n;
Пора на свалку.
Пункт второй.
В Hibernate давно уже думают - а не закодировать ли ORM для дерева, чтобы рекурсивное дерево можно было выбрать одним запросом.
И, конечно, всё никак не прикрутят.
Кто тоже забыл структуры данных — напоминаю: это делается минимум двумя способами, nested set/interval, и materialized path. В первом случае в записи хранятся ещё и индексы поддерева в отображении на отсортированный массив, а во втором - тупо путь к элементу.
Ещё можно, к примеру, проставить в записях их порядковые номера при обходе дерева. Автор статьи, правда, этого тоже не пробовал.
Tags:
(no subject)
9/2/10 17:09 (UTC)(no subject)
9/2/10 22:28 (UTC)(no subject)
10/2/10 07:23 (UTC)А я свои знания где-то с тех пор не обновлял.
А CTE поддерживает кто? По викиепдии - DB2, Firebird, Microsoft SQL Server and PostgreSQL. Из них не-мудацкий — только Postgre, но с ним же попробуй сунься к заказчику.
Я-то на DB2 сейчас, вот и попрактикуюсь.
(no subject)
10/2/10 07:34 (UTC)Очень просто, говорю я. i - это мнимая единица, а g - ускорение свободного падения :>
(no subject)
10/2/10 08:36 (UTC)(no subject)
10/2/10 19:17 (UTC)i - internet
g - grid