数据库架构从本地变为分布式

时间:2009-11-05 13:33:11

标签: database architecture distributed data-access-layer

我们公司有一个依赖本地数据库工作的产品(它允许更多客户端连接到同一个数据库并在它们之间共享数据)。

DBMS :Microsoft SQL Server 2008

现在,我们需要创建一个可通过互联网访问的数据库(我现在对如何不感兴趣),这将允许更多用户使用它,就像它们是他们自己的一样

要遵循的简单示例 假设我们的程序将管理(插入/修改/删除)书籍及其卖家:

Table Seller:
   IdSeller          PRIMARY
   Name

Table Books:
   IdBook            PRIMARY
   IdSeller          NOT NULL
   Description

现在,我们需要分发它,并按“公司”

对数据进行分类
 Table Company:
    IdCompany        PRIMARY
    LicenseNumber

我们的想法是修改(??)表,如下所示:

 Table Seller (NEW VERSION):
    IdSeller         PRIMARY
    IdCompany        NOT NULL
    Name

通过这种方式,我们确信图书将属于属于特定公司的特定卖家 从概念上讲这是有效的,但我们将改变在DataAccessLayer中进行的所有查询!

我们想到了几个解决方案:

  • 每个主要表的公司过滤视图
  • 重写所有查询

你会如何处理这个问题?

3 个答案:

答案 0 :(得分:0)

您可以创建可通过Internet rathaer访问的WCF / Web服务,而不是公开SQL Server。 WCF / Web服务可以包含有关从数据库向客户端提供哪些记录以及限制哪些记录的所有逻辑。您的客户端可以简单地访问WCF / Web服务。

如果我不能很好地理解你的问题,请告诉我。

答案 1 :(得分:0)

关闭袖口,我会在您的DAL中重新执行查询。

问题是,这是一个非常情况化的问题。你多久更新一次这个程序?这项工作是否有重大修改?贵公司如何配备大型重构?

有时候,在商业世界中,黑客快速解决方案是最佳的:'(

答案 2 :(得分:0)

首先,您需要确定此新架构中的实体将代表什么...新的卖家表是否与旧的相同?或者新表中的每一行代表卖方与公司的关联?即,同一卖家可以与两家不同的公司合作吗?同样的书籍问题。答案将决定如何最好地修改表模式以提供所需的功能。