0

我有一个 mssql 数据库,其中包含一个用户表和大约 6 个不同应用程序的表。每个应用程序在数据库中都有自己的架构。当用户登录时,会显示他有权访问的应用程序列表。

我想将用户表和应用程序分离到他们自己的数据库中,主要有两个原因。

  1. 可扩展性
  2. 维护

项目的第一步是将用户表移动到它自己的数据库中。然后使用 web api 服务允许任何应用程序与数据交互。例如 - IsUserValid、CreateUser、UpdatePassword....

我看到的问题是某些应用程序具有通过连接调用用户表的存储过程。例如: SELECT user.username, user.firstname, user.lastname, app.column1, app.column2 from users inner join app on users.username = app.username

有没有优雅的方法来解决这个问题?我知道我可以在两个单独的数据库中加入两个表,但我希望能够将应用程序数据库和用户数据库移动到单独的服务器上。

4

1 回答 1

0

您始终可以创建链接服务器并跨多个服务器查询数据。

SELECT * FROM schema.Table1 t1 JOIN server2.schema2.Table2 t2 ON t1.UserId = t2.UserId

替代解决方案是使用某种复制来跨所有数据库复制数据或修改过程,使它们不依赖于用户数据。

于 2013-04-25T19:46:19.860 回答