私は、さまざまな大手クライアントが当社のウェブサイトにログインし、さまざまなページをクリックしてその売上に基づいて分析データを表示できるサイトを作成する作業を行っています。現在ログインしているユーザーに基づいて、LINQで異なるデータベースを扱う?
ユーザーに基づいて複数のデータベースを処理する最良の方法についてお考えの人はいませんか?私たちは3大名のクライアントを持っていると言う、設計の決定は、それぞれの大きなクライアントが独自のデータベースを持って行われている。
clientAのユーザーがシステムにログインすると、会社のアナリティクスが表示され、モデルはclientAのデータコンテキストからプルダウンする必要があります。同様に、誰かがログインしてデータベースのclientBに関連付けられている場合、そのデータコンテキストからデータを取得する必要があります。
可能であれば、LINQで1つのデータアクセスレイヤークラスを作成し、ログイン時にそのユーザーと関連付けられたDataContextを渡す方法があります。誰かがこれを行うための適切な、またはきれいな方法を考えることができますか?
スキーマはすべてのデータベースで同じですか? – BFree
@BFree、私がやるクエリーについては同じです。それらは最終的に2つの列で異なるかもしれませんが、私が実行するLINQクエリに関しては異なりません。 –
@TankMan、あなたがしていることをデータベースシャーディングといいます。 – tuinstoel