Я думаю, что лучший способ сделать некоторые запросы использует GROUP BY на стороне сервера для построения информации об иерархии данных. Таким образом, вы будете строить древовидные структуры, которые вам нужны. Основные данные получат свойства isLeaf:true, level:4, expanded:false, loaded:true
и свойство parent
с идентификатором родительского узла "2200". Если бы вы использовали в качестве идентификаторов значения с префиксами, такими как 'e' для 'Event', 'm' для 'Model' и т. Д., Вам будет легко создать уникальные идентификаторы для каждой строки, так что вы сможете создать все данные для Сетка дерева на сервере и затем поместите данные в ответ сервера.
В качестве альтернативы вы можете заполнить только верхний уровень сетки дерева. Вы можете просто построить запрос, который будет производить результирующий набор. Если пользователь откроет какой-либо узел дерева, новый запрос будет отправлен на сервер. Запрос будет содержать несколько дополнительных параметров : nodeid
, parentid
и n_level
. Если вы хорошо выберете значения id для корневых элементов, у вас будет полная информация для построения запроса, который выведет вас на следующий уровень в дереве. Вы должны использовать parentid
как для создания WHERE
части запроса. Таким образом, вы также можете построить дерево и загрузить все узлы по требованию.