Как стать автором
Обновить
9
Карма
0
Рейтинг
Кирилл @EvilBlueBeaver

Пользователь

  • Подписчики 3
  • Подписки 4

[Вебинар] Представление иерархических структур в реляционных БД

Я об этом догадывался ;) я имею в виду есть ли удобные механизмы выборки объектов, подходящих под определенное условие (естественно с использованием индексов), какова относительная скорость работы, если допустим похожую структуру реализовать в связке hibernate + РСУБД на типовых выборках?

[Вебинар] Представление иерархических структур в реляционных БД

То, что вы описали, это есть лишь один из вариантов хранения (с parent_id) и СУБД просто предоставляют удобный способ этим пользоваться, однако существуют и другие способы хранения, оптимизированные для других операций.
Для некоторых задач не нужно ничего сложнее adjacency list (для которого как раз синтаксический сахар и предназначен), а некоторые придется описывать с помощью nested sets например.

В общем это я к чему. К тому, что как хранить иерархические данные в РСУБД зависит от типа решаемых задач.

P.S. Случаем никто не замерял скорость работы данных рекурсивных CTE, если надо выбрать все поддерево (например посчитать сумму опреленного поля у узла и всех его подузлов в полную глубину) на больших таблицах?

[Вебинар] Представление иерархических структур в реляционных БД

Если я не ошибаюсь — это объектная СУБД. Не подскажете, как она работает в сравнении со связкой РСУБД + hibernate в плане удобства, скорости и так далее? Все таки hibernate это по сути костыль.

[Вебинар] Представление иерархических структур в реляционных БД

Ну я вот как раз под графовой neo4j и имел в виду. Все-таки лучше хранить данные более естественным образом, а не прикручивать костыли.

[Вебинар] Представление иерархических структур в реляционных БД

А я вот все больше убеждаюсь, что не предназначены реляционные СУБД для хранения иерархических данных. Любой из способов хранения содержит те или иные недостатки. Наверняка существуют какие-то специализированные СУБД, например те же графовые.

Универсальное решение для печати на сетевые принтеры под Windows 7/Vista/2003/2008

Была похожая проблема. Правда принтер не работал под Linux, но не суть. Решилось так. На компе с принтером с помощью ghostscript создал виртуальный принтер и перенаправил задания с него на реальный. В настройках виртуального принтера можно выбрать любую модель. На компьюетере без принтера просто выбираем ту же модель и указываем, что принтер на другом компе.

Желательно выбирать PS принтер, с ними проблем должно быть меньше.

Вот ссылка с мануалом: www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html

Рисуем многочлен Бернштейна для произвольного числа опорных точек

Рекурсией тоже надо уметь правильно пользоваться ;)

Рисуем многочлен Бернштейна для произвольного числа опорных точек

Ваш вариант не содержит хвостового вызова и потому в языках с его оптимизацией оптимизирован не будет
А в .Net (точнее в C#) лучше рекурсию не использовать вовсе, поскольку там нет оптимизации хвостовых вызовов на уровне компилятора. Хотя в CLR инструкция все же присутсвует. Хотя может со времен .NET 3.5 что-то изменилось, честно не в курсе.

Хотя применительно в данному примеру это неважно, поскольку здесь не такая большая глубина, чтобы заметить разницу или получить StackOwerflow

Информация

В рейтинге
Не участвует
Откуда
Волгоград, Волгоградская обл., Россия
Дата рождения
Зарегистрирован
Активность