RDMSのバックグラウンドでこの問題が発生するので、文書データベースのベストプラクティスのいくつかが私には新しくなりました。私は共有データとそのデータへのアクセス権を保存する最良の方法を理解しようとしています。文書データベースの共有データとアクセス権を構成する最善の方法
プロジェクト表
projectId PK
ownerId FK User.userId
title
...
ユーザー表
userId PK
name
...
ProjectShare表
sharedById FK User.userId
sharedWithId FK User.userId
state
...
:SQL Server内のスキーマは次のようになります。
上記の表では、ユーザーがアクセスできるすべてのプロジェクトを照会できました。その後、各プロジェクトに関連するすべてのデータを照会することができました。各プロジェクトには多くの関連テーブルがあります。データの階層的な性質は、文書データベースに適しているようです。
MongoDB、CouchDB、DocumentDBなどのドキュメントデータベースで、このような構造を最適にするにはどうすればよいですか?
正直言って、正解はありません。同様のアプローチで終わるかもしれません。共有プロジェクトをサブ文書として埋め込むことになるかもしれません(ただし、*無制限の配列*条件を作成します)。すべてのコンテンツを1つのコレクションに保存するか(トランザクション目的で)、複数のコレクションを作成するかを選択できます。また、これは実際にはDocumentDBの質問ではありません。これはドキュメントデータベースのモデリングに関する質問です(コレクションの数を除いて、他のドキュメントデータベースについても同じ基本的な考慮事項があります)。 –