【问题标题】:Inserting Symfony NestedSet data via MySQL queries通过 MySQL 查询插入 Symfony NestedSet 数据
【发布时间】:2011-11-30 07:19:37
【问题描述】:

在 Symfony 探索项目中,我有一个使用学说 NestedSet 行为的模型。由于数据是在平面文件中准备的,所以我写了一个conversion utility 来生成相应的YAML。事实证明,处理大约 100 条记录 (max_depth=4) 的 NestedSet YML 会消耗超过 40MB 的 PHP 内存,这对我来说是不可用的。

这个问题有解决办法吗?

我正在考虑两种可能的解决方案。

  1. 编写等效的 PHP 脚本来填充对象并保存它们
  2. 通过 SQL 语句插入数据,挑战在于计算左右节点

Symfonians 有什么建议?

【问题讨论】:

  • 预购旅行算法解释:sitepoint.com/hierarchical-data-database-2
  • 平面文件中的层次结构如何表示?
  • 它有以下字段:level、id、name、parent_id。因此,如果水果是食物的子项,则 CSV 数据有 2 行:1=>[0, f1, Food, ] 2=>[1, f2, Fruit, f1]

标签: mysql symfony1 doctrine symfony-1.4 nested-sets


【解决方案1】:

我建议你分几次插入数据,例如从第 0 级开始,每级插入一次。

【讨论】:

    【解决方案2】:

    选项 2 更好。

    我在 Excel 中编写了一个简单的宏来计算预购树所需的 lgt 和 rgt 值。这里提到的逻辑:http://www.sitepoint.com/hierarchical-data-database-2/ 相同的 Excel 实用程序会将值转换为可以通过文件转储的 SQL 查询。

    通过固定装置/对象路线超出了允许的内存限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 2020-12-25
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多