0

我正在考虑使用 CMS 构建一个外部站点,可能是DrupalExpressionEngine。问题是我们公司已经有一个会员数据库,旨在与我们现有的企业软件一起使用,目前会员数据库包含超过 40 万行。

手动从数据库迁移数据不是一种选择,因为修改和新数据必须可以实时访问。因为外部数据库的设计将与 CMS 自己的不同,所以我决定最好的方法是使用两个数据库并强制 CMS 使用外部来读取用户信息(无法写入),并使用本地来读取 CMS 的所有其他内容需要做(读+写)。

这些 Drupal 或 ExpressionEngine 是否可行?理想情况下,我需要能够使用hooks,因为我不想修改核心 CMS 文件。筛选文档时,我无法找到我会为 ether CMS 挂钩的内容。

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

最后,如果有更好的方法来处理这种情况,也请加入。也许在数据库级别有一些东西可以引用外部数据库中的列?

我正抓着稻草,我敢肯定,有人可以为我指明正确的方向。

编辑: Moodle内置了此功能。Moodle 不适合我的需要,但也许他们的文档会帮助您更好地理解我的问题:Moodle - 外部数据库身份验证

4

4 回答 4

1

If the data is to remain in an external database, then you probably want to look at creating a web service like an API that allows your external site to access the data. Queries to an external database or notoriously slow.

于 2012-09-05T09:56:44.697 回答
1

我不是 Drupal (D)/ExpressionEnginge (EE) 专家。

对于 TYPO3(我深入了解)(我认为也适用于 D&EE),您可以编写自己的扩展程序,从您的会员数据库中获取用户数据并将它们存储在本地前端或后端用户表中以供临时使用。验证。我们已经为大型金融机构构建了这样的东西,即使是单点登录并根据远程组设置相应的权限。有很多 TYPO3 扩展可以用作示例。

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

还可以选择使用 LDAP 身份验证。

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

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

于 2012-09-05T09:59:13.497 回答
0

在 MySQL 中有一个用于处理外部数据的 EE 扩展:http: //devot-ee.com/add-ons/external-entries。不过,我不知道您需要访问什么数据库,或者是否可以使用它。

于 2012-09-06T06:38:36.257 回答
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 连接到外部数据库可能会让您很快陷入困境。

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

我曾经使用过一个 Rails 应用程序,它促使 Rails 用户成为 EE 成员并在他们之间共享会话,以便用户可以查看两个系统并保持登录状态。

于 2012-09-07T00:19:58.060 回答