Как сохранить древовидные структуры в Java?

Иерархические структуры данных часто хранятся в реляционных базах данных. Этот вид устройства хранения данных является гибким, но плоским, таким образом, древовидная структура должна быть сборкой с каждым запросом. Я хочу сохранить сообщения форума как древовидную структуру, но должно быть возможно запросить эффективно, сказать, например, выбирающие сообщения по дате или автора.

Я хотел бы иметь базу данных с открытым исходным кодом, которая доступна от Java.

Что лучший способ состоит в том, чтобы сделать так? CouchDB? neo4j?...?

10
задан deamon 9 March 2010 в 12:17
поделиться

2 ответа

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

Neo4j, будучи графической базой данных, должен хорошо подходить для хранения вашего дерева. Я никогда не использовал его, но, учитывая вашу проблемную область, он кажется лучшим вариантом (по крайней мере, тем, который нужно исследовать в первую очередь).

Что касается «лучшего способа», я думаю, это зависит от вашей реализации и требований. Я думаю, вам следует написать простой тест для базы данных графов, базы данных документов, базы данных объектов и реляционной базы данных (или нет) и посмотреть, какой из них подходит для проблемы, которую вы пытаетесь решить.

4
ответ дан 4 December 2019 в 01:00
поделиться

Когда я впервые столкнулся с этой проблемой, я нашел отличную статью (link).

Другими словами: в мире РСУБД существует 2 подхода к хранению основных древовидных моделей:

  • Модель списка смежности
  • Модель вложенного множества
7
ответ дан 4 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: