Ответ 1
Когда я впервые столкнулся с этой проблемой, я нашел замечательную статью (ссылка).
В словах: в мире СУРБД существуют два подхода к хранилищу основных моделей дерева:
- Модель списка привязанностей
- Вложенная модель набора
Иерархические структуры данных часто хранятся в реляционных базах данных. Этот тип хранилища является гибким, но плоским, поэтому структуру дерева необходимо строить с каждым запросом. Я хочу хранить сообщения в форуме как древовидную структуру, но должен быть возможен эффективный запрос, например, например, выбор записей по дате или автору.
Я хотел бы иметь базу данных с открытым исходным кодом, доступную с Java.
Каков наилучший способ сделать это? CouchDB? Neo4j?...
Когда я впервые столкнулся с этой проблемой, я нашел замечательную статью (ссылка).
В словах: в мире СУРБД существуют два подхода к хранилищу основных моделей дерева:
Здесь отличная статья на Neo4j. В общем, похоже, что neo4j - ваш лучший вариант, поскольку базы данных документов по-прежнему относительно плоские и могут привести к некоторой неудобной настройке (по-прежнему возможно).
Neo4j, являющийся базой данных графа, должен быть прочным для хранения дерева. Я никогда не использовал его, но, учитывая ваш проблемный домен, он кажется лучшим вариантом (по крайней мере, первым для исследования).
Насколько "лучший способ", я думаю, это зависит от вашей реализации и требований. Я думаю, вы должны написать простой тест против базы данных графа, базы данных документов, объектной базы данных и реляционной базы данных (или нет) и посмотреть который подходит для проблемы, которую вы пытаетесь решить.