Ну, «наиболее эффективный» обычно зависит от того, как вы планируете получать доступ к данным. Вам просто нужно разобрать дерево, а затем отобразить его пользователю, и это правда?
В этом случае, я полагаю, я бы смоделировал его как простое дерево, созданное, например, для объектов Node.
Существуют и другие древовидные структуры, которые вы могли бы использовать, но они усложняются, и снова это зависит от того, как вы собираетесь использовать эти данные. Вы строите это дерево на веб-сервере и, следовательно, должны быть как можно быстрее, чтобы избежать кучи-голодания? Вы просто показываете его пользователю?
Другим вариантом было бы сбросить необработанные строки на страницу, а затем написать javascript для генерации дерева отображения из сброшенных данных. Таким образом, веб-браузер вашего клиента выполняет всю работу по разбору дерева и его отображению.
Редактировать, чтобы ответить на ваш комментарий:
Хорошо, тогда бы стандартную структуру дерева работу? Я предполагаю, что вы знаете, как это сделать, но на всякий случай:
Вы захватываете ряд, разбираете его жетоны. Начиная с первого токена и начиная с корня дерева, выясните, является ли токен дочерним элементом текущего узла; если это так, установите его как ваш текущий узел и перейдите к следующему токену. Если нет, вставьте его в дерево и сделайте его новым текущим узлом. Отметьте эти узлы как узлы пространства имен. Повторяйте, пока не нажмете последний токен, который представляет ваш конечный объект. Вставьте в текущий узел свой объект с его параметрами.
Вы можете сделать все это одним классом; иметь класс хранения типа узла (пространство имен или объект), список дочерних узлов и свойства объекта, когда узел имеет объект типа. Или вы можете сделать это с наследованием и кастингом, так что каждому узлу не нужно иметь параметры для объекта, слышимый будет нулевым во всех узлах пространства имен.
Вы можете изменить предложения схемы схемы базы данных или это то, что вы не можете изменить и абсолютно необходимо сделать в этой базе данных «Plant.Tree.Apple.Pit'? –
Нет, схема БД исправлена. С этой структурой уже слишком много кода, иначе было бы намного проще. –