|
|
|
Иерархические структуры Nested Set или Materialized Path и Adjacency List
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемый форумчане! Подскажите, какая структура таблиц была бы оптимальной для следующих условий: - Известна максимальная глубина вложенности (5) - В большинстве случаев (60-70%) вложенность будет одноуровневой (корень -> наследник) - Среднее количество наследников 15-20. Иерархическая структура будет применяться для деления книг на тома, серии, пятикнижия, главы, подглавы и т.д. Как видите, деревья будут получаться небольшими, но их будет много. Я читал, что Nested Set хорош в плане чтения и не очень резв в плане изменения структуры. Но в моем случае изменения будут происходить редко. Буду рад любым мыслям на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 14:16 |
|
||
|
Иерархические структуры Nested Set или Materialized Path и Adjacency List
|
|||
|---|---|---|---|
|
#18+
murtukovкакая структура таблиц была бы оптимальной для следующих условий: Если Materialized Path это то, что я думаю, то я бы выбрал его. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 14:29 |
|
||
|
Иерархические структуры Nested Set или Materialized Path и Adjacency List
|
|||
|---|---|---|---|
|
#18+
murtukov Я читал, что Nested Set хорош в плане чтения и не очень резв в плане изменения структуры. Смотря какого чтения и смотря какого изменения. Запрос "все потомки данного предка" - да, на Nested Set работает довольно шустро. Определитесь, какие операции у Вас будут с деревом, а "среднее количество наследников" - вопрос второстепенный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 14:30 |
|
||
|
Иерархические структуры Nested Set или Materialized Path и Adjacency List
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, чтение дерева по кускам производиться не будет. Только все дерево целиком. Весь спектакль только для того, чтобы на вебстранице наглядно была видна структура книги. Изменение структуры дерева будет производиться, но не так часто, потому как один раз вбил информацию о книге в БД и все. Но от человеческих ошибок никто не защищен, так что все равно придется иногда вносить поправки: кто-то где-то неправильно указал очередность следования глав, дал неверное название главе или и вовсе неправильно поделил все. Стало быть изменения будут производиться самые различные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 15:00 |
|
||
|
Иерархические структуры Nested Set или Materialized Path и Adjacency List
|
|||
|---|---|---|---|
|
#18+
murtukovКот Матроскин, чтение дерева по кускам производиться не будет. Только все дерево целиком. Если в таблице у Вас много несвязанных деревьев - то "все дерево целиком" это и есть "все потомки данного предка" (в Вашем случае - корня дерева). Судя по тому что Вы пишете про изменения - они не являются частью повседневной работы,при необходимости могут накапливаться и производиться в моменты простоя -> их производительность никого не интересует. В этом случае да, Nested set - неплохое решение. Единственно - классический Nested Set расссчитан на хранение одного дерева в таблице, т.е. Вам надо будет добавить "Идентификатор дерева". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 15:14 |
|
||
|
Иерархические структуры Nested Set или Materialized Path и Adjacency List
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕсли Materialized Path это то, что я думаю, то я бы выбрал его. +1 Дерево выбирается одним селектом, с сортировкой по колонке Materialized Path ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 16:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38943726&tid=1540571]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 121ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...