Представьте себе почти классическую ситуацию: есть какие-то данные в БД (одна, две и более таблиц), и надо эти данные обработать хитрым образом, а затем сохранить результат в отдельную таблицу для последующего представления данных пользователю.
Выбирать данные на клиентское приложение, обрабатывать локально, а затем сохранять результат обратно в БД – законом не запрещается, но крайне не рационально. Причём чем больше объём исходных данных, тем больше требуется время на просто выборку данных. Поэтому любые задачи, связанные с обработкой данных лучше решать на стороне сервера.
Допустим, что в процессе обработки данных, нам необходимо построить дерево.