多租户系统在MVC中具有独立的数据库

本文介绍了多租户系统在基于网络应用中的重要性,特别是会计软件从桌面应用向在线服务的转变。文章讨论了多数据库方法的优势,如易于备份恢复和灵活扩展,并通过一个ASP.NET MVC的例子,详细解释了如何实现每个租户拥有独立数据库的系统架构,包括用户认证、数据库创建及数据访问的实现步骤。
摘要由CSDN通过智能技术生成

介绍

随着宽带和网络技术的进步,我们正在看到从传统的桌面应用转向基于网络的系统。云是这几天的所有范围。Sage和Quickbooks等会计软件包正在被诸如Kashflow和Wave Apps等在线软件取代。

每个客户并没有创建一个独特的软件实例,而是像Kashflow和Wave Apps一样,将他们的系统开发成多租户应用程序 - 所有用户都使用该软件的一个实例。在每种情况下,它们的数据都是通过系统的体系结构与其他客户的数据分离的。

引用:

多租户是指软件架构中的一个原则,其中软件的单个实例在服务器上运行,为多个租户提供服务。租户是一组用户在他们使用的软件上共享相同的观点。 - 维基百科

这可以通过两种方式来实现:

单个数据库 - 创建单个数据库,所有数据都存储在此处。每个记录都分配有一个租户密钥,只有属于该租户的数据才可访问。访问受应用软件的限制。

多个数据库 - 或者,可以使用单独的数据库来存储每个客户数据。然后可以通过使用SQL登录凭据来限制对数据库的访问。

虽然我多次使用单一数据库方法,但在开始最近的一个项目时,很明显多种数据库方法可能更合适。

多数据库方法的优点

多数据库方法的主要优点之一是可以备份和恢复单个用户的数据。使用单一的数据库方法,恢复数据库将消除所有客户的变化,并且在单个客户出错时不可能提供回滚功能。

另外,如果网站变得非常成功,那么多数据库系统就可以非常容易地在各个服务器之间移动数据。

然而在我的情况下,主要的卖点是预期一些客户可能需要定制系统,超出了多租户设计所能达到的水平。通过使用单独的数据库,可以将这些数据库移动到新的服务器上,并在需要时进行完全自定义。虽然这可能会首先打破多租户系统的优势,但它确实提供了单一数据库系统不能提供的灵活性和面向未来的优势。

多数据库系统的体系结构

多租户应用程序的体系结构

在多数据库多租户系统中,每个用户数据都存储在自己的数据库中。因此需要单独的数据库来保存登录细节,并提供用户数据存储位置的详细信息。这可能指向同一台服务器上的数据库或远程数据位置。

如何使用MVC创建多数据库系统6

在Visual Studio中,创建一个新的ASP.NET Web应用程序。

创建一个新的项目

选择MVC作为模板类型,在“更改认证”中,确保选择“个人用户帐户”。这个例子我们将使用表单认证。

选择MVC作为类型

确保选择个人用户帐户

首先,创建一个名为AccountDAL的文件夹- 我们将使用它来存储访问Account数据存储的所有代码。

为帐户DAL创建一个文件夹

创建一个新类,并将其命名为DataContext.cs添加下面的代码:

public class DataContext : DbContext
{
    public DataContext() : base("accountContext")
    {
    }

    public DbSet<Account> Accounts { get; set; }
    public DbSet<User> Users { get; set; }
}

我们将首先使用实体​​框架生成一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值