|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Нужна быстрая база или подход, какой выбрать? 1. Выбирать дерево, целиком или от родителя со всеми детьми.. или с одним ребенком. 2. Причем по выбранной ноде надо сумму столбца с поднодами... Какую базу выбрать или подход? Postgres? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 14:36 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
bernexКакую базу выбрать или подход? Да любую выбирай, как и любой подход. Эти условия ничего не ограничивают. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 14:59 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
bernex, выбрать реляционную и имеющую иерархические запросы, в postgres вроде рекурсивные CTE уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 15:39 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
bernex, На Postgres вполне прилично работает рекурсия, но Вы определитесь какой метод Вам больше подходит Adjacency List или Nested Sets. Почитайте литературу ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 15:56 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Yo.!выбрать реляционную и имеющую иерархические запросы Или хранить деревья способом, отличным от самого примитивного, и обойтись без рекурсии. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 15:58 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
bernex, Лучше всего хранить деревья в древовидной базе!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 16:03 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Yo.!bernex, выбрать реляционную и имеющую иерархические запросы, в postgres вроде рекурсивные CTE уже есть. походу в postgres уже все есть, пока кидать mssql) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 16:07 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovYo.!выбрать реляционную и имеющую иерархические запросы Или хранить деревья способом, отличным от самого примитивного, и обойтись без рекурсии. а что за способы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 17:19 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
ScareCrowа что за способы? 1) включение в ключ ноды полного пути до неё 2) хранение полного списка связей Оба имеют свои ограничения, но позволяют быстрые выборки без использования рекурсии. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 17:26 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovScareCrowа что за способы? 1) включение в ключ ноды полного пути до неё 2) хранение полного списка связей Оба имеют свои ограничения, но позволяют быстрые выборки без использования рекурсии. первый способ - нарушение 1НФ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 19:34 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Зайцев Фёдорпервый способ - нарушение 1НФ А второй - третьей (или второй?..). Денормализация - обычный способ увеличения быстродействия. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:07 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Зайцев Фёдор, вы имеет в виду, что пересечение строки и столбца должно содержать единственное значение из некоторого домена? Так там и будет не несколько значений идентификаторов узлов, а единое значение (напр., из специально созданного домена), интепретируемое как путь на графе. В PostgreSQL для этого есть тип данных ltree. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:18 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovА второй - третьей (или второй?..). Денормализация - обычный способ увеличения быстродействия. второй - вообще не денормализация, по-моему ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:21 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Зайцев Фёдорвторой - вообще не денормализация, по-моему ) Избыточность налицо, так что это по-любому денормализация. Осталось только придумать номер нарушаемой НФ. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:24 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Ывы имеет в виду, что пересечение строки и столбца должно содержать единственное значение из некоторого домена? Так там и будет не несколько значений идентификаторов узлов, а единое значение (напр., из специально созданного домена), интепретируемое как путь на графе. В PostgreSQL для этого есть тип данных ltree. Я имею ввиду возможные проблемы с сохранением ссылочной целостности при таких полях. Можно повесить внешний ключ на ltree (пардон, не знаю PostgreSQL) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:24 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЗайцев Фёдорвторой - вообще не денормализация, по-моему ) Избыточность налицо, так что это по-любому денормализация. Осталось только придумать номер нарушаемой НФ. Избыточность лечится очень просто - изменением имени таблицы В том смысле, что тип отношения не "близкий родственник" а "родственник" ^^ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:26 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
На самом деле, избыточность, конечно, присутствует. Но для 3НФ это по барабану, ей вообще не нужно знать про деревья, достижимость и т.д. Не нарушается, короче) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:32 |
|
Хранение деревьев
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovИли хранить деревья способом, отличным от самого примитивного, и обойтись без рекурсии. вам товарищ можно все, это не лечится ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:50 |
|
|
start [/forum/topic.php?fid=35&msg=38586848&tid=1552387]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 299ms |
0 / 0 |