
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.05.2013, 13:35:28
|
|||
|---|---|---|---|
Как правильно построить дерево |
|||
|
#18+
Код: plaintext 1. 2. 3. Как отобразить такую структуру в виде дерева? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 13:54:14
|
|||
|---|---|---|---|
Как правильно построить дерево |
|||
|
#18+
Создать DefaultMutableTreeNode root=new DefaultMutableTreeNode("Дерево документов"); Далее: пробежаться по строчкам, каждый раз создавая DefaultMutableTreeNode и проверяя его наличие в root, если в root его нет - добавить, и т.д., как-то так? Если такой вариант имеет место быть, то как проверить присутствует ли вновь вставляемый DefaultMutableTreeNode в дереве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:15:58
|
|||
|---|---|---|---|
|
|||
Как правильно построить дерево |
|||
|
#18+
Для начала хорошо бы разобраться какой именно подход здесь используется. Для хранения дерева в RDBMS существуют разнцые способы. Просто у вас как-то странно выходит в 2х записях 4 узла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:18:55
|
|||
|---|---|---|---|
Как правильно построить дерево |
|||
|
#18+
Blazkowicz, +1 id parent_id name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:26:21
|
|||
|---|---|---|---|
|
|||
Как правильно построить дерево |
|||
|
#18+
http://habrahabr.ru/post/153861/ Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL? Краткий обзор методов хранения деревьев в БД Если кратко, то: AL — когда у нас родитель хранится в колонке типа parent_id: ''1'' MP — полный путь до элемента хранится в колонке типа path: ''1.2.5'' NS — пара колонок lft и rgt, хранящие диапазон всех вложенных элементов, например, корень дерева из 9 элементов будет иметь левое значение ''1'', а правое — ''18'' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:31:16
|
|||
|---|---|---|---|
Как правильно построить дерево |
|||
|
#18+
Изначально данные разбросаны по 3 таблицам, собираю я их вот таким запросом: Код: sql 1. 2. 3. 4. 5. 6. 7. результат запроса показан на скрине. вот такая вот ситуация.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:33:06
|
|||
|---|---|---|---|
|
|||
Как правильно построить дерево |
|||
|
#18+
JulTИзначально данные разбросаны по 3 таблицам, собираю я их вот таким запросом: результат запроса показан на скрине. вот такая вот ситуация.... Запрос высечен в граните и поменять его на нормальный шансов нет? Можно ведь просто привести к такому виду: 14338755 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:38:09
|
|||
|---|---|---|---|
Как правильно построить дерево |
|||
|
#18+
BlazkowiczJulTИзначально данные разбросаны по 3 таблицам, собираю я их вот таким запросом: результат запроса показан на скрине. вот такая вот ситуация.... Запрос высечен в граните и поменять его на нормальный шансов нет? Можно ведь просто привести к такому виду: 14338755 запрос можно менять как угодно, но я пока не знаю как, может вы поможете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:44:21
|
|||
|---|---|---|---|
|
|||
Как правильно построить дерево |
|||
|
#18+
JulTзапрос можно менять как угодно, но я пока не знаю как, может вы поможете? Поменять JOIN на UNION что-то вроде такого Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 14:46:28
|
|||
|---|---|---|---|
|
|||
Как правильно построить дерево |
|||
|
#18+
С другой стороны, когда каждый уровень находится в своей таблице, то зачем всё складывать в одну кучу. Загружайте данные для каждого уровня разными методами из 3х разных таблиц. Можно ленивым подходом. Только если юзер открывает ноду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2013, 15:08:11
|
|||
|---|---|---|---|
Как правильно построить дерево |
|||
|
#18+
BlazkowiczС другой стороны, когда каждый уровень находится в своей таблице, то зачем всё складывать в одну кучу. Загружайте данные для каждого уровня разными методами из 3х разных таблиц. Можно ленивым подходом. Только если юзер открывает ноду. в другом месте у меня реализована лэйзи загрузка данных из ноды, т.к. узлов и под узлов там очень много, здесь же данных будет от силы до уровня 10, поэтому когда пользователь открывает дерево с, например, 3 узлами и 2 под узлами, ленивый подход не совсем кстати, хочется чтобы дерево отображалось полностью. Вообщем идею я вроде поняла, спасибо за наводящие мысли, ушла пробовать)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2129301]: |
0ms |
get settings: |
14ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 268ms |
| total: | 435ms |

| 0 / 0 |
