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