Questions tagged «multi-tenant»

1
多租户SQL Server数据库中的复合主键
我正在使用ASP Web API,实体框架和SQL Server / Azure数据库构建多租户应用程序(单个数据库,单个架构)。此应用将由1000-5000个客户使用。所有表都将具有TenantId(Guid / UNIQUEIDENTIFIER)字段。现在,我使用的是ID(Guid)的单字段主键。但是,仅使用Id字段,我就必须检查用户提供的数据是否来自/正确的租户。例如,我有一个SalesOrder包含CustomerId字段的表。每次用户发布/更新销售订单时,我都必须检查是否CustomerId来自同一租户。情况变得更糟,因为每个租户可能都有多个出口。然后我要检查TenantId和OutletId。这确实是维护的噩梦,并且对性能不利。 我正在考虑将一起添加TenantId到主键中Id。并可能也添加OutletId。所以在主键SalesOrder表将是:Id,TenantId,和OutletId。这种方法的缺点是什么?使用复合键会严重损害性能吗?复合键顺序重要吗?我的问题有更好的解决方案吗?

3
具有SQL Server 2016 Shard的多租户系统是否应该通过每个租户通过单独的数据库进行租户隔离?
给定用例: 租户数据不应串扰,一个租户不需要另一租户的数据。 每个租户都可能具有较大的历史数据量。 SQL Server托管在AWS EC2实例中。 每个租户在地理位置上都相距遥远。 有意使用第三方可视化工具,例如PowerBI Embedded 预计数据量会随着时间增长 系统的成本受到限制。 没有24/7生产DBA,解决方案必须可维护 解决方案应该能够水平缩放。 租户总数少于50 推荐的体系结构是什么,此用例是否有参考实现?我相信许多人可能已经在企业软件开发中遇到了这个问题。 我认为这与处理多租户数据库体系结构中越来越多的租户不同。在该问题中提到的用例处理的租户数量更多,这与只有极少数(50)的大租户不同。提到的体系结构可能是这里的解决方案,这是我想进一步了解的。

1
在PostgreSQL中使用许多模式而不是仅使用一种模式的利弊?
对于拥有30万个帐户(并且还在不断增长)的大型SAAS应用程序(由PostgreSql 9.4支持),每个帐户使用模式对数据进行分区与将所有数据置于一个模式中并使用外键进行数据交换的利弊是什么?在查询中将其分区? 我知道过去使用许多模式时pg_dump的速度很慢,但不确定今天是否是如此。我也知道数据库结构的任何更改都必须在所有模式上进行。而且我知道,从正面来看,将模式从一台物理服务器移动到另一台物理服务器很容易,并且可以从备份中还原模式,更不用说以这种方式分区数据了。 那么,我缺少哪些利弊?

2
在单独的数据库之间建立关系是不好的做法吗?
我正在与一个具有多个数据库的客户端一起工作。有多个master级别数据库,这些级别数据库具有从instance级别数据库(特定于应用程序的DB)返回的关系。从instance到的关系master是整数值,代表.NET中表的主键master。设置中的视图和存储过程以通过这些存储的键instances从中加载数据master。 显然,没有真正的参照完整性,但是这是一种不好的做法还是应该将数据驻留在instance数据库的只读表中?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.