2012-09-05 64 views
0

我正在寻找使用CMS构建外部网站,可能是DrupalExpressionEngine。问题是我们公司已经有了一个会员数据库,可以与我们现有的企业软件一起工作,目前会员数据库由超过40万行组成。在外部数据库中使用CMS

由于必须实时访问修改和新数据,因此不能手动从数据库迁移数据。由于外部数据库的设计与CMS自身的设计不同,我决定采用两个数据库并强制CMS使用外部读取用户信息(无法写入)和本地其他任何其他CMS需要做(读取+写入)。

这些Drupal或ExpressionEngine可行吗?理想情况下,我需要能够使用hooks,因为我不想修改核心CMS文件。通过筛选文档,我无法找到我将要为以太网CMS所进入的内容。

(注:我知道这是可能的,但我想知道它是否可行是)。

最后如果有更好的方法来处理这种情况,请同时参考一下。也许在数据库级别有一些东西需要引用外部数据库中的列?

我抓着吸管有人可以指向我正确的方向我敢肯定。

编辑:Moodle内置了这个功能Moodle是不适合我的需要,但也许他们的文档将帮助你理解我的问题,更好地:Moodle - External database authentication

回答

1

如果数据保留在外部数据库,那么你可能想看看创建一个像API一样的Web服务,它允许你的外部站点访问数据。查询到外部数据库或臭名昭着的缓慢。

+0

不幸的是,查询必须这样做,数据库的设计维护是另一个团队的财产。数据修改应保留在CMS端。 –

+0

如果是第三方服务,那么他们很可能是一个API。但是,如果它是你组织的另一个部门,那么我强烈推动至少一个API,如果它是必不可少的。外部数据库查询会杀死高流量的网站。 –

1

我不是Drupal(D)/ ExpressionEnginge(EE)专家。我认为你可以编写自己的扩展,从会员数据库中提取用户数据,并将它们存储在本地前端或后端用户表中对于温度。认证。 即使单点登录,我们也为大型金融机构建立了这样的事情,并根据远程组设置相应的权限。 有很多TYPO3扩展可以作为例子。

另一种可能性是再次避免实时特征,并在数据库级别上使用同步脚本,检查包含例如D或EE用户表的成员表。 5分钟节奏。

还有一个使用LDAP认证的选项。

如果数据库都是MySql,那么你可以创建一个视图,指向远程成员表,你只需要实现正确的列。

修改核心总是一个坏主意。 ;-)

+0

谢谢。我一直认为缓存(我没有实际使用它们)的视图,他们每次运行查询还是存储他们创建时的一组结果? –

0

在ExpressionEngine中,有六个包含成员和成员组数据的表(包含用户/用户组的EE术语)。

  • exp_members
  • exp_member_groups
  • exp_member_bulletin_board
  • exp_member_data
  • exp_member_fields
  • exp_member_homepage

在所有的可能性你需要同步与exp_members和exp_member_groups您的用户数据库中常规的我为了达到这个目的,尝试将EE连接到外部数据库可能会让您很快陷入困境。

如果你只是想访问你的外部数据库,你可以编写插件在后台连接,并使你的数据在你的模板中可用。

我曾AA Rails应用程序一旦推Rails的用户成为他们之间的EE成员共享会话,使用户可以查看这两个系统,并保持登录。