Drupal作为(强大的)关系数据库


8

我想制作一个Drupalsite,为全世界从事同一研究主题的人们提供一个平台进行协作和交流。(我相信Drupal因此是一个很好的选择)。

但是,该网站还应包括一个关系数据库(对于网站的访问者而言,这将是一个非常有趣的研究工具)。这个数据库的测试版本已经存在于ooo基础中:它有50个表,它们之间有许多多对多和一对多的关系。从根本上说,它记录了人员,事件和组织之间的关系。

我知道可以通过创建自定义内容类型并使用实体连接模块在drupal中创建关系数据库。但是,看看Drupal将这些数据存储在其mysql数据库中的方式,恐怕这种构建数据库的方式对我来说不是很有用,因为查询数据(或使用[社交网络]上的分析软件)。轻松查询数据的可能性对我的数据库至关重要。

我知道可以将第二个数据库添加到drupal站点(参见http://drupal.org/node/18429)。但是,我不确定这是否是我的问题的解决方案。

很简短,我想知道:

(1)是否有可能将Drupal将某些内容类型的数据保存在其mysql数据库中的方式更改为似乎更“自然”的方式来分析数据(并能够轻松查询它们)

(2)是否有可能向drupal站点添加第二个mysqldatabase,从而以自定义(更“自然”的)方式组织某些内容类型的数据。如果可能,drupal站点的用户必须能够添加内容并分析这些数据,就像它们被保存在同一数据库中一样。

如果有人可以帮助我,我将非常感激!

Answers:


3

您已经开始使用数据库。根据我自己的经验,我不愿依赖/允许Drupal维护任何明智的数据。而且,由于您已经拥有一个强大的数据库,这听起来也不是一个不错的选择。

综上所述,似乎您只想简单地了解drupal中发生的节点/内容保存。然后,您将能够连接到外部数据库并以您选择的方式处理和插入数据。

节点API挂钩 -D6具有相似的功能,只是命名不同。在此过程中有很多挂钩点。您甚至可以更改表单并添加自己的提交功能。


2

如果您希望拥有自己的工作流来将内容类型及其字段保存在数据库中,则可以查看Field Storage API。它用于执行所有“数据库访问”。

例如,您可以查看MongoDB模块以了解如何实现。(我看到您只需要使用此模块作为示例就需要SQL DB)。

还请参阅文章“ Drupal 7中的远程实体 ”,它描述了如何将整个实体(即内容类型)保存在默认Drupal DB之外的其他位置。


1

我最近启动了一个用于Drupal <=> Neo4J集成的沙箱。

http://drupal.org/sandbox/Letharion/1861580

它仍然处于非常早期的阶段,但是Neo4j听起来像是您可以允许更好查询的一种方式。但是,这个想法不是要改变Drupal存储数据的方式,而是要复制内容之间的链接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.