リレーショナルの世界から来ると、Azure テーブル ストレージの場合は明らかに大きく異なります。私が遭遇した最初の大きな問題は、多対多の関係を適切に保存する方法です。
たとえば、ユーザーとユーザーが所有する本を追跡するシステムがあるとします。ここで、ユーザーが所有する書籍 ID のリストを基本的に格納するユーザーに文字列プロパティを設定することを提案する SO に関する別の投稿を見つけました。これがデータの保存方法として受け入れられている場合があることは理解していますが、問題は、Azure では 64 KB のデータしか String に保存できないことです。これにより、ユーザーが潜在的に所有できる書籍の数が制限されます。
別の考えられる解決策は、データを重複させることです。システム内のすべての既知の書籍を格納するテーブルがあるとします。ただし、User を Book に関連付ける必要がある場合、OwnedBooks という別のテーブルに Book データをコピーします。これは、OwnedByUserID プロパティも持っていることを除いて、基本的に Book テーブルとまったく同じです。
他に考えられる解決策はありますか?
この問題以外に、Azure テーブル ストレージを使用する際の他のパターンやプラクティスについて何か良い提案はありますか?