Несмотря на то, что на эти вопросы был дан ответ, я решил аналогичную проблему для дерева, созданного теми же сущностями, добавив атрибут с большой фантазией «хлебная крошка» и заполнив его во время выполнения, чтобы при наличии модели сущности
X {
name NSString
breadcrumb NSString
to-many X relationship
}
A, B, C, D, E, как это:
A-->B
-->C-->D
-->E
Я в конечном итоге с этим:
A {
breadcrumb /A
relationship B,C,E
}
B {
breadcrumb /A/B
relationship nil
}
C {
breadcrumb /A/C
relationship D
}
D {
breadcrumb /A/C/D
relationship nil
}
E {
breadcrumb /A/D
relationship nil
}
Я могу сказать, что индексирование хлебных крошек, сделать вещи быстрее, и я могу сделать поиск регулярных выражений.Важно, что когда у меня есть сущность, я легко могу найти ее корень без циклов.Конечно, у меня был какой-то механизм, позволяющий избежать зацикливания и уникальности хлебных крошек, основанный на атрибуте name.