|
|
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. В Оракле есть потрясающая возможность работать с иерархическими структурами. На таблице вида id,parent_id и индексов по ним в обе строны. Запросы летают пулей. что для получения всех потомков, что для получения всех родительских записей. Достаточно поставить два индекса id+parent и parent+id. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Все просто красиво и быстро работает. С любой вложенностью потомков. Как такое же реализовать через коллекции джава Map(key,value)? Данных много. Простая конструкция вида Map(id, parent_id ) может работать быстро только при получении родителей. Ибо запрос пойдет по ключу Map. А вот если задаться целью найти всех потомков, то придется идти перебором по всем parent и сравнивать с id. Неужели придется держать две коллекции фактически имитируя индексы как в оракле? Или есть решение похитрее? Или я вообще не ту структуру как основную рассматриваю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 21:44:36 |
|
||
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
Вообще в Java есть какой нибудь набор библиотек реализующий индексный доступ к данным? Судя по стандартному набору Map/Set/List - там этого нет. Самое близкое Map но и там если смотреть глазами разработчика БД есть только ПК в виде поля key. Неужели ничего подобного не создавалось никогда? Ведь самый обычный индекс позволяет сократить количество шагов при поиске элемента коллекции во много раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 10:31:37 |
|
||
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
Кореец, А что-нибудь тиап такого не потянет? Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 10:40:05 |
|
||
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
sanBez, сорри, поспешил. наверно так: Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 10:45:52 |
|
||
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
Кореец, Зачем вы привязываетесь к Java коллекциям? Определитесь какая-именно структура данных вам нужна. А затем уже ищите реализацию на Java. http://ru.wikipedia.org/wiki/Дерево_(структура_данных) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 10:49:46 |
|
||
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 10:57:33 |
|
||
|
Иерархическая структура. Опять.
|
|||
|---|---|---|---|
|
#18+
КореецНеужели придется держать две коллекции фактически имитируя индексы как в оракле? Или есть решение похитрее? Сами же говорите - в Оракле все быстро и красиво, так почему бы не сымитировать? Или лень? Ну так гуглите java embedded key-value in-memory indexed database. Но ручное решение, привязанное к вашей структуре данных, всё равно будет быстрее работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 14:05:45 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38325095&tid=2129018]: |
0ms |
get settings: |
20ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
50ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
95ms |
get tp. blocked users: |
3ms |
| others: | 327ms |
| total: | 551ms |

| 0 / 0 |
