2011-11-30 35 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

我建议你多次插入数据,例如每级从一级开始一次。