Предложение для базы данных типа происхождения: MongoDB, Redis и т. Д.?
Вопрос
Я пишу приложение Ruby, которое сохраняет данные типа предков. Т.е. семейное дерево.
Для остальной части приложения я использую MongoDB для хранения, поскольку он поддается иерархической структуре, однако данные предков не соответствуют этой модели, даже если она иерархична в некотором смысле. Мне любопытно, если у кого-то есть предложение о том, следует ли использовать больше подходящего слоя базы данных для обработки их?
IE A в паре с B (двунаправленные) и имеет родителей C и D. B имеет родителей E и F. A и B у детей G, H, I. G в паре с H, и так далее.
Так что это не совсем рекурсию, так как один узел имеет 2 родительских узла. Поэтому вложение не имеет смысла в MongoDB, так как оба родителя встроили одинаковое дерево в дублировании. Он ближе к социальному графику только более жестким (есть только 2 типа отношений). Я думаю, что наборы Redis будут работать очень хорошо, но прежде чем я усложняющую стек с постоянством полиглота, я надеялся, что смогу получить некоторые отзывы от других, которые могут разработать аналогичные структуры. Другое беспокойство у меня с Redis хранит все эти деревья в памяти, возможно, не может быть отличной идеей, хотя, если бы я только хранил отношения в Redis с данными объекта в документах MongoDB, это, вероятно, было бы в порядке.
Решение
Может быть, вы должны попробовать диаграмму базы данных, так как звучит намного ближе к домену. И там довольно много, вы могли бы попробовать http://nosql.mypopescu.com/post/498705278/498705278/quick-review-of-existing-graph-databases.