2017-04-27 7 views
1

Microsoft Elastic DBツールのドキュメントを読んで、複数のテナントとデータベースを共有したり、ユニークなインデックスを使用したりするベストプラクティスについて聞きたいと思っていました。弾性Dbツールとユニークなインデックス

テナントのすべてのユーザーが保存されるユーザーテーブルがあるとします。私たちは、電子メールは各ユーザーごとに一意でなければならないと定義しています。しかし、ユーザーが2人のテナントに在籍していて、電子メールを再利用したい場合は、一意のインデックスが存在するため、電子メールを再利用することはできません。

この場合、ユニークインデックスにテナントIDを含める必要があります。これは正しいアプローチですか?この場合、パフォーマンスに影響を与えないように、すべてのクエリでテナントIDを明示的に使用する必要があります。

答えて

1

はい、各シャードテーブルにテナントIDを含めることは、SaaSプログラミングモデルでよく行われています。 SaaSアプリケーションのデータベースモデルごとのマルチテナントからシングルテナントまでの範囲に関する文脈を以下に示します。https://docs.microsoft.com/en-us/azure/sql-database/sql-database-design-patterns-multi-tenancy-saas-applications#multitenant-data-models

+0

私はこのドキュメントをよく知っています。私の質問は、マルチテナントデータベース設計のベストプラクティスに関連しています。たとえば、ユニークなインデックスを処理する方法 –