2010-04-18 74 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创建的语句)。

有些情况下单模式设置很方便,但我不认为多租​​户就是其中之一。