複数のスキーマを管理するEntity Frameworkで単一のC#アプリケーションを使用するにはどうすればよいですか?または、単一のスキーマは必要ですか?顧客や統合されたデータベースのためのデータベースは何が良いでしょうか?
私は約28のクライアントを持っていますが、それぞれを別々のデータベースに保管しているのか、単一のデータベースに統合して顧客IDなどの情報を管理しているのだろうかと思います。
データの量がアプリケーションのパフォーマンスを低下させることが心配です。私はSQL Server 2014を現在システムの各バージョンと共に使用しており、システムを進化させており、最良のシナリオに合っています。
私は、クライアントアクセスのログインによって制御される単一のアプリケーションがメンテナンスを行うのが良いと考えています。
私は自分のサーバーに自分のスキーマのセキュリティ管理をしたいと思っている顧客がいるので、別のデータベースを持つことができるかどうか分かりません。
要求のソースにある に応じて、接続文字列を動的に取得するコンテキストを作成する方法はありますか。
public class ProductRepository {
public void Add(Product product, int clientId)
{
//Here the connection string will be set according to the client id you are saving information
var context = ContextFactory.GetContext(clientId);
context.Products.Add(product);
}
}
また、情報に属するエンティティの顧客ID内に配置する方がよいでしょうか?
public class BaseEntity {
public int Id {get;set;}
public int Client_Id {get;set}
}
public class Products : BaseEntity{
public string Name {get;set;}
public double Price {get;set;}
}
アプリケーションをホストする経験豊富なDBAをお持ちですか?特に、複数のクライアントの住宅/管理/サポートに関して、分散アプリケーションに関する理解がないように聞こえます。お金を払って専門家に支払うと、長期的にあなたを救うことになります – MethodMan
データベースという用語はあいにくあいまいですが、人々がテーブルやスキーマ、サーバーインスタンス全体を意味することがあります。これを明確にすることができますか?同じテーブルにクライアントをホストすべきかどうか疑問に思っていますか?同じスキーマで?または同じSQL Serverインスタンス内にありますか? –
申し訳ありませんが、正しい用語はスキーマ –