Мне интересно, как лучше всего установить глубокие вложенные родительские отношения между родителями, используя рекомендуемый метод ассоциации Feathers?
Если бы мои записи были:
[
{"name": "Grandpa", "id": 1, "parent": null},
{"name": "Mom", "id":2, "parent": 1},
{"name": "Baby", "id": 3, "parent": 2}
]
Затем, если бы я хотел найти верхний родительский элемент дерева, я выполнял бы рекурсивное получение, пока не достигну вершины дерева:
const family = app.service('/family')
function get_ancestors(childId, parents){
const child = family.get(childId)
if(child.parent){
parents.push(child.parent)
return get_ancestors(child.parent, parents)
} else {
return parents
}
}
Но это кажется мне неуклюжим и не очень расширяемым.Есть ли способ лучше?Это похоже на то, что fastJoin сделает, но это не относится к «рекомендуемому» подходу к созданию ассоциаций.Я также не вижу примеров более 3-х уровней в руководстве, за исключением, возможно, пакетных загрузчиков, И это выглядит немного сложнее, чем нам нужно здесь.Каков «рекомендуемый» способ обхода дерева предков с помощью Перьев?И наоборот, если бы у меня был дедушка, как бы я нашел ребенка?Должны ли мои записи содержать массив «children», который заполняется при добавлении потомка в качестве родителя?Или есть лучший способ перехода от верха к низу родительского дерева?