Что такое чистый/эффективный метод для хранения каталога Hierarchy/tree в базе данных Key-Value (в моем случае MongoDB, но любой из них)?
Например, древовидная структура
- Cars
+ Audi
+ BMW
- M5
+ Ford
- Color
+ Red
- Apple
- Cherry
+ Purple
- Funny
Метод, который я использую сейчас, каждый объект ссылается на него parent
{
dir: "red"
parent-dir: "color"
}
Это очень эффективно/быстро вставляет и изменяет порядок любого аспекта дерева (например, если я хочу переместить Red и все его дочерние элементы в каталог Cars).
Но этот метод отстой, когда я хочу, чтобы все подкаталоги и их дети для данного каталога рекурсивно. Чтобы сделать его эффективным для синтаксического анализа, я могу иметь структуру, например
{
dir: "red"
children: "audi, bmw, ford"
}
{
dir: "bmw"
children: "m5"
}
Но если я хочу изменить дерево, нужно добавить и изменить целую кучу объектов.
Существуют ли какие-либо другие способы хранения структуры каталогов в хранилище KV?