Есть несколько способов справиться с этим типом структуры, и в Интернете нет недостатка в примерах об этом типе древовидных отношений.
В простейшем подходе;у вас может быть структура Parent
Child
, в которой родительский элемент null
будет сигнализировать о вершине дерева, а дочерний элемент с нулевым значением - о конце этой ветви.Это простая и эффективная структура, но она может быть сложной для сбора метрик, потому что вам всегда придется рекурсивно искать всю цепочку.
Message{
...
Message parent
Message child
}
Этот пост показывает хорошую рекурсиюв примере GSP:
Другой образец для этого - материализованный путь.Это немного обманчиво для реализации, но легко работать, когда оно на месте.Материализованные пути также намного проще собирать метрики для одинакового количества ответов, а также делать хлебные крошки гораздо проще.
Message{
...
Message parent
String path //would like something like this: 1/2/3/4
}
Для поиска в поиске пути к материализованному пути посмотрите google или этот пост,