2011-11-30 42 views
0

在Symfony勘探項目中,我有一個使用了NestedSet行爲的模型。由於數據是在一個平面文件中準備的,我寫了一個conversion utility來生成相應的YAML。事實證明,處理大約100條記錄(max_depth = 4)的NestedSet YML會佔用超過40MB的PHP內存,這對我來說是不可用的。通過MySQL查詢插入Symfony NestedSet數據

是否有解決此問題的方法?

我在想2種可能的解決方案。

  1. 寫一個等效的PHP腳本通過SQL語句
  2. 插入數據來填充對象&拯救他們,面臨的挑戰是計算左向右&節點

什麼Symfonians建議?

+0

預購旅行算法解釋:http://www.sitepoint.com/hierarchical-data-database-2/ – Prasad

+0

層次結構如何在您的平面文件中表示? – greg0ire

+0

它具有foll字段:level,id,name,parent_id。所以如果水果是食物的孩子,那麼CSV數據有兩行:1 => [0,f1,Food,] 2 => [1,f2,Fruit,f1] – Prasad

回答

0

選項2更好。

我在Excel中編寫了一個簡單的宏來計算預定義樹所需的lgt和rgt值。這裏提到的邏輯:http://www.sitepoint.com/hierarchical-data-database-2/ 相同的Excel實用程序會將值轉換爲可以通過文件轉儲的SQL查詢。

穿過夾具/對象路線超過了允許的內存限制。

1

我建議你多次插入數據,例如每級從一級開始一次。