【发布时间】:2011-04-20 15:07:29
【问题描述】:
我们开发的服务是为每个客户用户都可以预约的。 是否有策略 - 每个客户端的数据库(MS SQL SERVER)中的表是正确的?
我们认为这种策略简化并排除了复杂的表锁定。
【问题讨论】:
标签: sql-server-2008 locking optimistic-locking pessimistic
我们开发的服务是为每个客户用户都可以预约的。 是否有策略 - 每个客户端的数据库(MS SQL SERVER)中的表是正确的?
我们认为这种策略简化并排除了复杂的表锁定。
【问题讨论】:
标签: sql-server-2008 locking optimistic-locking pessimistic
听起来您正在尝试构建多租户应用程序。我不会推荐每个客户一张桌子。相反,我会推荐以下两种解决方案之一:
将所有客户(租户)的数据集成到相同的表中,并按标识符分隔。换句话说,每个顶级表都有一个名为“ClientId”或“TenantId”的外键,可以识别和分隔每个客户端的数据。这种方法的缺点是数据库变得更大更快,而大型数据库管理较小的数据库更加复杂。此外,开发人员构建的查询可能会忘记过滤 ClientId,而一个客户端会看到另一个客户端的数据。
每个客户端一个数据库。如果客户端将托管自己的应用程序,如果每个客户端的数据大小存在很大差异,或者如果客户端希望绝对保证数据分离,这是一种更极端的解决方案,但很有用。
【讨论】: