如何处理大量相互关联的数据

时间:2012-04-27 19:42:24

标签: drupal drupal-7

目前我在MySQL中有一个数据库结构,其中包含几十个表,其中包含各种外键链接。所有数据都在我要加载的文件中,所以我希望我可以将设计移植到与Drupal 7一起使用的存储系统,因为我可以简单地设置一些东西(使用Feeds模块?)以Drupal 7喜欢的方式获取我的数据。这样做的最终目的是进行大量手动人工修改,将表中的条目与关系链接在一起,并可能修改一些看起来错误的字段数据。因此,整个目标是在Drupal 7中创建用于查看和编辑(特别是添加)关系的人机界面。问题是,数据存储的正确方法是什么,因此我必须根据需要编写少量模块代码?

在我看来,我会选择3个模块中的一个来完成这项任务:

  • 关系
  • 实体参考
  • 数据

Relation和Entity Reference允许我将所有数据存储在Drupal 7中的节点(实体?)中,因此Drupal将拥有处理所有内容的“原生支持”。但是,我预计会有数百万到数十亿的节点,每个节点与其他节点的关系可能达到约3个。当使用Views等引用外部数据(并且可能从该引用中获取引用数据等)时,Relation或Entity Reference如何有效地处理此问题?它们是否可以支持具有空引用的节点,因为在用户可以设置它们之前,许多节点将为空(因此我需要一种方法来查找具有特定空引用的节点的视图)?

数据是另一种可能性,但它是alpha版本,我想知道它的稳定性和效率。在我看来,将所有数据存储在外部MySQL数据库而不是Drupal节点中,首先会破坏使用Drupal的全部目的。我的感觉是正确的吗?

我很难确定管理我的内容需要什么,考虑到Drupal 7是一个CMS,这似乎很奇怪。我必须在这里遗漏一些东西,但我不确定它是什么。什么是最成熟的模块(s?),用于处理/连接大量相互关联的数据,并且能够通过并让用户主要设置和管理“表”之间的链接(所以“外键”) “,以及可能的现场数据审查和修订?有没有足够的东西?

1 个答案:

答案 0 :(得分:0)

  

Relation和Entity Reference允许我存储我的所有数据   在Drupal 7中的节点(实体?)中,所以Drupal会有“原生的”   支持“处理所有的东西。但是,我希望有   数百万到数十亿的节点,最多可达3个节点   与每个节点的关系。关系或关系的效率如何   实体引用在引用外部数据时处理此问题(和   也许从该引用中获取引用数据,等等   观点等?

如果您需要显示数据,其他型号将无法帮助您。你可能需要一些分页或给你的查询一个最大的递归深度来加载你感兴趣的实体。我想使用已经支持的东西会为你节省很多工作。

如果没有基准测试,您几乎找不到瓶颈。所以,最简单的方法似乎是实体参考,并根据需要进行优化。您可以创建一些测试数据以尽早发现限制。但是有一些方法可以在以后优化请求。