Вставка данных Symfony NestedSet через запросы MySQL - PullRequest
0 голосов
/ 30 ноября 2011

В проекте исследования Symfony у меня есть модель, использующая доктрину поведения NestedSet.Поскольку данные готовятся в виде плоского файла, я написал утилиту преобразования для генерации соответствующего YAML.Оказывается, для обработки NestedSet YML около 100 записей (max_depth = 4) требуется более 40 МБ памяти PHP, что мне недоступно.

Есть ли обходной путь к этой проблеме?

Я думаю о 2 возможных решениях.

  1. Написать эквивалентный PHP-скрипт для заполнения объектов и их сохранения
  2. Вставка данных с помощью операторов SQL, задача состоит в том, чтобы вычислить левуюи правые узлы

Что предлагают симфонийцы?

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Я предлагаю вам вставить данные несколько раз, например, один раз за уровень, начиная с уровня 0.

0 голосов
/ 25 мая 2012

Вариант 2 был лучше.

Я написал простой макрос в Excel для вычисления значений lgt и rgt, необходимых для дерева предварительного заказа.Логика, как упомянуто здесь: http://www.sitepoint.com/hierarchical-data-database-2/ Эта же утилита Excel преобразует значения в SQL-запрос, который может быть выгружен через файл.

При прохождении маршрута для приборов / объектов превышен допустимый предел памяти.*

...