0

我们开发的服务是为每个客户用户都可以预约的。是否有策略 - 每个客户端的数据库表(MS SQL SERVER)是否合适?

我们认为这种策略简化并排除了复杂的表锁定。

4

1 回答 1

1

听起来您正在尝试构建多租户应用程序。我不会推荐每个客户一张桌子。相反,我会推荐以下两种解决方案之一:

  1. 将所有客户(租户)的数据集成到同一个表中,并通过标识符进行隔离。换句话说,每个顶级表都有一个名为“ClientId”或“TenantId”的外键,可以识别和分隔每个客户端的数据。这种方法的缺点是数据库变得更大更快,而大型数据库管理较小的数据库更加复杂。此外,还存在开发人员构建的查询忘记过滤 ClientId 并且一个客户端看到另一个客户端的数据的风​​险。

  2. 每个客户端一个数据库。如果客户端将托管他们自己的应用程序,如果每个客户端的数据大小存在很大差异,或者如果客户端希望绝对保证数据分离,这是一个更极端但有用的解决方案。

于 2011-04-20T15:18:56.263 回答