【问题标题】:Using a CMS with an external database将 CMS 与外部数据库一起使用
【发布时间】:2012-09-05 09:33:45
【问题描述】:

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

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

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

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

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

我确信有人可以为我指明正确的方向。

编辑:Moodle 已内置此功能。Moodle 不适合我的需要,但也许他们的文档会帮助您更好地理解我的问题:Moodle - External database authentication

【问题讨论】:

    标签: php sql database drupal expressionengine


    【解决方案1】:

    如果数据要保留在外部数据库中,那么您可能希望创建一个类似于 API 的 Web 服务,以允许您的外部站点访问数据。查询外部数据库或速度非常慢。

    【讨论】:

    • 不幸的是查询必须这样完成,数据库的设计和维护是另一个团队的财产。数据修改应保留在 CMS 端。
    • 如果它是第三方服务,那么它们很可能是 API。但是,如果它是您组织的另一个部门,那么如果必要的话,我会强烈要求至少提供一个 API。外部数据库查询会扼杀高流量网站。
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

    • 谢谢。我一直认为视图缓存在哪里(我实际上并没有使用它们),它们是每次都运行查询还是存储它们创建时的一组结果?
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      在 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 成员并在他们之间共享会话,以便用户可以查看两个系统并保持登录状态。

      【讨论】:

        猜你喜欢
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多