2012-09-05 101 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成員共享會話,使用戶可以查看這兩個系統,並保持登錄。