问题标签 [multi-tenant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
429 浏览

php - 多租户 - 预先或根据需要创建表?

我目前正在开发一个 SaaS 类型的应用程序,对于多租户,我已经为每个用户确定了一个数据库,每个数据库都包含用户有权使用的功能所需的所有表(已付费)。该应用程序旨在捕获数据(例如网络分析)并将其呈现给用户。该设计应该能够扩展到数以万计的用户(最终)。

一个可行的解决方案是在应用程序检测到需要它们时“动态”创建表吗?或者我应该在特定用户数据库中创建所有最终需要的表,只要我知道它们可能需要(用户升级、新功能等)?

我目前的架构允许我做这样的事情:

我希望能够灵活地添加功能,而不必遍历所有用户数据库来添加表,因此像上面这样的设置将帮助我实现这一目标。但我不确定我是否遗漏了一些让我日后后悔的决定?

0 投票
2 回答
2938 浏览

sql-server - 在多租户数据架构中,实现租户过滤视图的最佳方式是什么?

我正在使用 ASP.Net MVC 2 和 SQL Server 数据库实现 SaaS 应用程序。我正在使用共享租赁方法。

为了过滤数据,到目前为止,我找到了两种方法。

选项 1:http: //msdn.microsoft.com/en-us/library/aa479086.aspx#mlttntda_tvf

每个租户使用 sql 登录。因此,使用 SUSER_SID() 作为视图中的过滤器

选项 2:http: //blogs.imeta.co.uk/jyoung/archive/2010/03/22/845.aspx

在 Context_Info 中存储租户 ID。因此,使用从 Context_Info 中读取租户 ID 的 sql 函数作为视图中的过滤器。

你能帮我选择合适的选项吗?

谢谢,谢谢

0 投票
1 回答
1052 浏览

.net - 具有 SQL 2008 的 .NET 中多租户、多语言应用程序的最佳数据模型

我正在使用 SQL 2008 在 .NET 中开发多租户应用程序。每个租户都可以指定自己的语言。例如,一家中国公司可能会使用我的应用程序,并希望通过中文字符对他们的所有数据进行排序和搜索。一家德国公司可能会使用我的应用程序,并希望通过德语字符对他们的所有数据进行排序和搜索。

我希望有一个数据库来存储所有数据,按租户 ID 分段。

一个表可能看起来像这样:

成员

TenantID MemberID 名称

1234 5678 约翰

1235 5679 简

数据将存储在 unicode 列 (nvarchar) 中。我还想使用全文索引器来索引数据。

在所有数据都存储在同一个数据库中的多租户环境中,如何最好地处理排序规则?

我应该在查询字符串中指定排序规则(即SELECT * FROM Members ORDER By Name Collat​​e(中文))吗?动态传递排序规则是否存在任何性能问题,尤其是当列上的索引以一种特定语言排序时?

还是为每种语言都有一个数据库并在运行时确定要使用的连接字符串会更好吗?

另外,如何最好地处理全文索引?我相信它只能用一种语言索引,并且每个表只能指定一个索引。

还有什么要考虑的吗?

谢谢!

0 投票
2 回答
1902 浏览

c# - 多租户用户模型

在托管多个组织和应用程序的多租户系统中,一个组织可能使用系统上托管的多个应用程序,我的用户和角色模型是否应该使单个用户或角色可以跨多个应用程序和组织存在?还是应该将用户实体限制为单个组织/应用程序对,然后定义一些总体模型以将这些用户实体联系在一起?

那是:

  • 约翰·多伊是一个人

  • 他想使用 ApplicationA 和 ApplicationB

  • 他在两个不同的公司工作(请耐心等待),OrganizationA 和 OrganizationB

用户模型应该是:

  1. johndoe@someuniquesuffix 是他唯一的用户名。这使他可以访问两个组织的两个应用程序。

  2. johndoe@applicationa@organizationa 是他在 OrganizationA 的 ApplicationA 的用户名。johndoe@applicationb@organizationa 是他在 OrganizationA 的 ApplicationB 的用户名......对于 OrganizationB 也是如此。然后有一些“主”列表显示应用程序/组织的所有 4 个用户帐户对应于同一个实际“人”,John Doe?

上述相同的场景适用于我将如何设计我的角色模式。

感谢您的帮助!

0 投票
1 回答
2770 浏览

asp.net-mvc - IIS 7:从不存在的子域重定向到子文件夹

我正在开发一个 ASP.NET MVC 多租户应用程序。

现在我设法创建了动态子文件夹,例如有人用用户名“bob”注册并获得以下网站:

domain.com/bob

我的下一个目标是提供子域:bob.domain.com 而不是子文件夹。

我发现使用 ASP.NET 和 DNS WMI 创建动态子域非常复杂。有没有办法告诉服务器它必须从 bob.domain.com 重定向/重写到 domain.com/bob ?

0 投票
2 回答
1446 浏览

asp.net-mvc-2 - 如何使用 ASP.NET MVC2 和 MS SQL Server 在共享数据库中实现租户视图筛选器安全模式

我开始在 ASP.NET MVC2 中构建 SaaS 业务线应用程序,但在开始之前,我想建立良好的架构基础。

我将采用共享数据库和共享模式方法,因为数据架构和业务逻辑将非常简单,效率和成本效益是关键问题。

为了确保租户之间数据的良好隔离,我想实现租户视图过滤器安全模式(看看这里)。为此,我的应用程序必须根据登录应用程序的用户来模拟不同的租户(数据库登录)。登录过程需要尽可能简单(它不会是企业级软件)——所以客户应该只输入他们的用户名和密码。

用户将通过他们自己的子域(使用子域路由)访问他们的数据,例如http://tenant1.myapp.comhttp://tenant2.myapp.com

满足这种情况的最佳方法是什么?

0 投票
2 回答
1713 浏览

java - 如何在多租户架构中维护会话属性?

对于 SaaS 应用程序,同一台服务器托管多个应用程序。会话属性如何维护?为了详细说明问题:AppA 和 AppB 托管在同一台机器上,我现在为 AppA 创建 UserA,为 AppB 创建 UserB。AppA 和 AppB 属于不同的组织,因此它们没有关联。有关用户的一些详细信息存储在 http 会话级别(直到会话超时)。因此,现在如果我使用不同的选项卡从同一浏览器同时登录 AppA 和 AppB,我最终可能会在 UserB/AppB 屏幕上看到一些 UserA/AppA 详细信息,反之亦然。如何解决这样的问题?我能想到的一种解决方案是创建像 appa.example.org 和 appb.example.org 这样的子域。还有其他/更好的方法吗?

0 投票
4 回答
1130 浏览

asp.net - windows azure asp.net MVC2中的多租户

任何人都知道我怎样才能开始在 MVC2 中开发一个多租户站点,以使其在 Windows Azure 上运行?

我搜索了很多关于这个问题,我总是找到理论解释,每个人都说这很容易做到,但我没有找到任何示例......

有人可以解释我从哪里开始吗?

谢谢,若昂

0 投票
3 回答
1071 浏览

sql-server - 事先不知道其他数据库名称时,SQL Server 跨数据库查询?

给定一个多租户设置,其中一个数据库保存租户数据,每个租户一个数据库,您如何构建查询以在每个租户数据库中查找相同的数据?

例如,租户主数据库有一个名为 Tenants 的表:

每个单独的租户都有一个名为 Widgets 的表:

是否可以编写一个选择查询来获取每个租户数据库中的小部件数量?还是需要游标或存储过程?例如输出将是:

0 投票
3 回答
2347 浏览

ruby-on-rails - 在 Rails 3 中处理多租户的最佳方法

我正在构建多租户应用程序。

所有数据的隔离都是由每个表中的 TenantID 列完成的。

为所有租户模型自动处理多租户的最佳方法是什么。

例子:

目前我在 CanCan gem 中看到了类似的东西,它可以获取特定用户参数的记录。但它没有为插入和更新操作提供任何东西。或者可能是我不明白该怎么做。

问候,阿列克谢·扎哈罗夫。