问题:
假设我们有 5 个客户。目前,每个客户都有自己的数据库副本。这是因为有数百万行,我们不希望一个客户端数据库的负载影响另一个客户端数据库的性能。
这不是最佳设计,因为:
- 为每个客户端管理单独的连接并不灵活,
- 更改需要在多个数据库中传播,并且
- 需要为每个新客户端创建一个新数据库。
问题:
是否可以将所有这些数据包含在一个数据库中,但在客户端数据之间进行某种形式的物理隔离,以便它的性能类似于拥有多个数据库?
这种隔离不会在表(或模式)级别,而是在行级别。例如,我不想Employee
为每个客户端(如Employee_ClientA
, Employee_ClientB
, Employee_ClientC
)创建单独的表,而是希望使用Employee
带有ClientID
外键的表。这意味着表内的数据需要在物理上分开。