Python Flask を使用して JSON API でプラットフォームを開発しています。場合によっては、3 つのテーブルを結合する必要があります。ID の配列を使用してテーブルを結合する方法は、いくつかのガイダンスを提供してくれましたが、それ以上の解決策が必要です。
メッセージング アプリ用に 3 つのテーブルがあるとします。
- アカウント
- 会話
- メッセージ
- メッセージリーダー
アカウント テーブルのスニペット
{
"id": "account111",
"name": "John Doe",
},
会話テーブルのスニペット
{
"id": "conversation111",
"to": ["account111", "account222", "account333"], // accounts who are participating the conversation
"subject": "RethinkDB",
}
メッセージ テーブル スニペット
{
"id": "message111",
"text": "I love how RethinkDB does joins.",
"from": "account111", // accounts who is the author of the message
"conversation": "conversation111"
}
メッセージ リーダーのテーブル スニペット
{
"id": "messagereader111",
"message": "message111",
"reader": "account111",
}
私の質問は、「id="account111" のアカウント ドキュメントで get リクエストを受け取ったときに、以下のドキュメントを取得するためのマジック クエリは何ですか?」
{
"id": "account111",
"name": John Doe,
"conversations": [ // 2) Join account table with conversations
{
"id": "conversation111",
"name": "RethinkDB",
"to": [ // 3) Join conversations table with accounts
{
"id": "account111",
"name": "John Doe",
},
{
"id": "account222",
"name": "Bobby Zoya",
},
{
"id": "account333",
"name": "Maya Bee",
},
]
"messages": [ // 4) Join conversations with messages
{
"id": "message111",
"text": "I love how RethinkDB does joins.",
"from": { // 5) Join messages with accounts
"id": "account111",
"name": "John Doe",
},
"message_readers": [
{
"name": "John Doe",
"id": "account111",
}
],
},
],
},
],
}
ガイダンスやアドバイスは素晴らしいでしょう。JavaScript や Python のコードはすばらしいでしょう。