0

ユーザーテーブルと約6つの異なるアプリケーション用のテーブルを持つmssqlデータベースがあります。各アプリケーションには、データベース内に独自のスキーマがあります。ユーザーがログインすると、ユーザーは自分が権限を持っているアプリケーションのリストを表示されます。

主に 2 つの理由から、ユーザー テーブルとアプリケーションを独自のデータベースに分離したいと考えています。

  1. スケーラビリティ
  2. メンテナンス

プロジェクトの最初のステップは、users テーブルを独自のデータベースに移動することです。次に、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

これを解決するエレガントな方法はありますか?2 つの別々のデータベースにある 2 つのテーブルを結合できることはわかっていますが、アプリ データベースとユーザー データベースを別々のサーバーに移動できるようにしたいと考えています。

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 に答える