2010-04-18 140 views
1

應用程序如何在基於SaaS的多租戶應用程序中提供數據的導入/導出(或備份),尤其是單一數據庫設計?SaaS多租戶應用程序:如何實施數據導入/導出/備份?

進口:

讓事情簡單,我認爲基本的進口是有用的,即CSV的規格(或數據庫提供CSV列和字段之間的映射的方式

出口。 :

在單一數據庫設計中,我看到了XML導出和HTML(基本sitse生成)導出數據嗎?我認爲XML是一個更好的選擇?如何處理關係數據?您會參考各種東西在XML中並提供關係的文檔或讓用戶體會這一點?

供應商是否提供可導入/恢復的導出/備份?

您的意見讚賞。

回答

1

我不知道它是如何做,但這些都是可能的方案:

  1. DB-每個客戶
  2. 模式,每個客戶
  3. 單模式

案例1在備份/恢復(或導入/導出)方面是微不足道的,情況2是相似的。我會冒險猜測這2個是最常用的方法。

第三個選項使得導出/導入困難,但並非不可能。其基本思想是,一個表格包含來自所有公司的數據,但通過外鍵區分公司。導出和導入需要使用相同種類的ETL工具,因爲這些操作需要按公司ID進行過濾。導出過程以公司作爲參數,僅爲該公司運行任務。轉儲將採用插入語句的形式(如可以使用MySQL或PostgreSQL獲得的語句)或XML(如由DDLUtils創建的語句)。

有些情況下單模式設置很方便,但我不認爲多租​​戶就是其中之一。