【发布时间】:2010-12-13 10:19:15
【问题描述】:
我们公司有一个依赖本地数据库工作的产品(它允许更多的客户端连接到同一个数据库并在它们之间共享数据)。
DBMS:Microsoft SQL Server 2008
现在,我们需要创建一个单一的数据库,可以通过互联网访问(我目前对如何不感兴趣),这将允许更多用户使用它,就好像它是他们自己的一样.
简单的例子。
假设我们的程序将管理(插入/修改/删除)书籍及其卖家:
Table Seller:
IdSeller PRIMARY
Name
Table Books:
IdBook PRIMARY
IdSeller NOT NULL
Description
现在,我们需要分发它,并按“公司”对数据进行分类
Table Company:
IdCompany PRIMARY
LicenseNumber
我们的想法是像这样修改 primary (??) 表:
Table Seller (NEW VERSION):
IdSeller PRIMARY
IdCompany NOT NULL
Name
通过这种方式,我们可以确定图书将属于特定的卖家,而这些卖家将属于特定的公司。
从概念上讲,这是可行的,但是我们将不得不更改在 DataAccessLayer 中进行的所有查询!
我们想到了几个解决方案:
- 每个主表表的公司过滤视图
- 重写所有查询
你会如何处理这个问题?
【问题讨论】:
标签: database architecture distributed data-access-layer