タグ付けされた質問 「multi-tenant」

1
マルチテナントSQL Serverデータベースの複合主キー
ASP Web API、Entity Framework、およびSQL Server / Azureデータベースを使用して、マルチテナントアプリ(単一データベース、単一スキーマ)を構築しています。このアプリは、1000〜5000人の顧客が使用します。すべてのテーブルにはTenantId(Guid / UNIQUEIDENTIFIER)フィールドがあります。現在、私はId(Guid)という単一フィールドの主キーを使用しています。しかし、Idフィールドのみを使用することで、ユーザーから提供されたデータが正しいテナントからのものであるかどうかを確認する必要があります。たとえばSalesOrder、CustomerIdフィールドを持つテーブルがあります。ユーザーが販売注文を投稿/更新するたびにCustomerId、同じテナントからのものかどうかを確認する必要があります。各テナントに複数のコンセントがあるため、状況はさらに悪化します。次に、確認する必要がTenantIdありOutletIdます。これは本当にメンテナンスの悪夢であり、パフォーマンスに悪影響を及ぼします。 TenantIdとともに主キーに追加することを考えていIdます。また、おそらく追加OutletIdします。だから、主キーSalesOrder:テーブルになりますId、TenantIdとOutletId。このアプローチの欠点は何ですか?複合キーを使用すると、パフォーマンスが大幅に低下しますか?複合キーの順序は重要ですか?私の問題に対するより良い解決策はありますか?

3
SQL Server 2016、シャードを備えたマルチテナントシステム、またはテナントごとに個別のデータベースを介してテナントを分離する必要がありますか?
ユースケースを考えます: テナントデータはクロストークしてはいけません。あるテナントは別のテナントのデータを必要としません。 各テナントには、大量の履歴データが潜在的に含まれている可能性があります。 SQL ServerはAWS EC2インスタンスでホストされます。 各テナントは地理的に離れています。 PowerBI Embeddedなどのサードパーティの視覚化ツールを使用する意図があります。 データ量は時間とともに増加すると予想されます システムのコストには制約があります。 ソリューションは、24時間365日の実稼働DBAなしで保守可能でなければなりません。 ソリューションは水平方向にスケーリングできる必要があります。 テナントの総数は50未満です 推奨されるアーキテクチャは何ですか?このユースケースのリファレンス実装はありますか?多くの人がエンタープライズソフトウェア開発のためにすでにこの問題に直面していると思います。 これは、マルチテナントデータベースアーキテクチャで増加するテナントの処理とは異なる状況だと思います。その質問で言及されているユースケースは、より多くのテナントを扱っていますが、これは非常に少数の大きなテナントを持つこととは非常に異なります。ここで説明したアーキテクチャは、ここで解決策になる可能性があります。これは、私がもっと知りたいことです。

1
1つだけではなく、PostgreSQLで多くのスキーマを使用することの長所と短所?
(PostgreSql 9.4に裏打ちされた)大規模なSAASアプリケーションの場合、300,000を超えるアカウントがあり(そして成長中)、アカウントごとにスキーマを使用してデータをパーティション分割することと、すべてのデータを1つのスキーマに入れ、外部キーを使用することの長所と短所は何ですか。クエリで分割しますか? 以前、多くのスキーマを操作するときにpg_dumpが非常に遅くなっていましたが、それが今日のケースかどうかはわかりません。また、データベース構造の変更はすべてのスキーマで行う必要があることも認識しています。そしてプラス面では、スキーマをある物理サーバーから別の物理サーバーに移動するのは簡単です。また、スキーマをバックアップから復元することはもちろんです。データをそのようにパーティション分割することは理にかなっています。 それで、私が見逃している長所と短所は何ですか?

2
別々のデータベース間の関係は悪い習慣ですか?
複数のデータベースを持つクライアントを使用しています。レベルデータベース(アプリケーション固有のDB)masterからの関係を持ついくつかのレベルデータベースがありますinstance。fromからinstancetoへの関係masterは、のテーブルへの主キーを表す整数値ですmaster。のビューとストアドプロシージャは、これらのストアドキーを介してinstancesデータをロードするように設定masterされています。 明らかに、実際の参照整合性はありませんが、それは悪い習慣なのinstanceでしょうか、それともデータベースの読み取り専用テーブルにデータを常駐させるべきなのでしょうか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.