我必须使用ASP.NET MVC 3或更高版本和Server 2008。根据多租户数据结构的文章,有三种实现多租户的方法。
我有以下细节:
我想知道你的经验如何说,考虑到经济和安全,哪种方法更适合这个项目?是否有类似于此的好的实时示例(开放源码项目)?我可以为这个项目使用一个专用服务器。
发布于 2012-12-27 13:01:07
您的要求,用户应该能够备份其数据,可以更容易实现与约1和2.因为它将是一个本机数据库任务。
如果您使用的是方法3(共享共享),则需要开发逻辑,以提取属于单个租户的所有行,并将其导出到xml文件或类似的文件中。然后,如果需要允许用户恢复备份文件,则需要开发恢复逻辑。
我认为这是唯一的要求,可以让你离开3号。
使用表中的TenantID列设置数据库后.如果您的客户非常关心安全性,您可以很容易地为一个租户或一小群租户使用一个数据库。例如,您可以有一个数据库保存不付费的租户(免费/演示帐户),而在另一个数据库中支付客户。这样,您就可以使用第3种方法,但如果需要的话,可以作为第一种方式来操作。
:奖金:
AUTHENTICATION:您需要扩展MVC3应用程序中使用的SQL成员资格和角色提供程序.因此,用户登录仅在其所属的租户中有效。
多域在这里您可以看到一些使用ASP.NET MVC3路由的方法:MVC 3子域路由
发布于 2012-12-27 10:01:54
我总是使用(3)共享数据库,共享模式。
如果你想要一个例子,那么Wordpress,Joomla或者其他流行的开源网络项目怎么样?
在每个租户的基础上创建单独的模式或数据库将导致大量的管理开销。更不用说分析你的数据、成本等的复杂性了。
您选择(1) (或者可能是2)的唯一原因是如果要让实际租户直接访问某些/所有数据库。由于您使用的是ASP.NET MVC 3,这不是一个考虑因素。
https://stackoverflow.com/questions/14052593
复制相似问题