我正在考虑使用CMS构建外部网站,可能是Drupal或ExpressionEngine。问题是我们公司已经有一个会员数据库,旨在与我们现有的企业软件一起使用,目前会员数据库包含超过400k行。
手动迁移数据库不是一种选择,因为必须实时访问修改和新数据。因为外部数据库的设计与CMS本身的设计不同,我认为最好的方法是使用两个数据库并强制CMS使用外部来读取用户信息(无法写入)和本地用于其他所有CMS需要做(读+写)。
这对Drupal或ExpressionEngine来说是否可行?理想情况下,我需要能够使用hooks
,因为我不想修改核心CMS文件。通过文档筛选我无法找到我将用于CMS的内容。
(注意:我知道这是可能的,但我想知道它是否可行)。
最后,如果有更好的方法来处理这种情况,请也请插入。也许在数据库级别有一些东西可以引用外部数据库中的列?
我抓着稻草,有人可以指出我正确的方向,我敢肯定。
编辑: Moodle内置了此功能.Moodle不适合我的需求,但他们的文档可能会帮助您更好地了解我的问题:Moodle - External database authentication
答案 0 :(得分:1)
如果数据要保留在外部数据库中,那么您可能希望创建一个类似API的Web服务,以允许您的外部站点访问数据。查询外部数据库或者说速度慢得多。
答案 1 :(得分:1)
我不是Drupal(D)/ ExpressionEnginge(EE)专家。
对于TYPO3(我深入了解)(以及D& EE,我认为)你可以编写自己的扩展,从你的会员数据库中提取用户数据并将它们存储在本地前端或后端用户表中对于温度认证。 即使是单点登录,我们也为大型金融机构建立了这样的东西,并根据远程组设置相应的权限。 有很多TYPO3扩展可以作为一个例子。
另一种可能性是再次避免实时特征并在数据库级别上使用同步脚本,并在例如D或EE用户表中检查成员资格表。节奏5分钟。
还可以选择使用LDAP身份验证。
如果数据库都是MySql,那么您可以创建一个指向远程成员资格表的视图,您只需要实现正确的列。
修改核心始终是个坏主意。 ; - )
答案 2 :(得分:0)
在MySQL中使用外部数据有一个EE扩展:http://devot-ee.com/add-ons/external-entries。我不知道您需要访问哪个数据库,或者是否可以使用它。
答案 3 :(得分:0)
在ExpressionEngine中,有六个表包含成员和成员组数据(EE的用户/用户组术语)。
您很可能需要定期将用户数据库与exp_members和exp_member_groups同步以实现此目的。尝试将EE连接到外部数据库可能会让您快速陷入困境。
如果您只是想访问外部数据库,可以编写在后台连接的插件,并在模板中提供数据。
我曾经使用Rails应用程序推动Rails用户成为EE成员并在他们之间共享会话,以便用户可以查看这两个系统并保持登录状态。