単一の API を使用して DynamoDB テーブルのレコードをスキャンおよび更新するオプションはありますか? フィールド (ItemID、ItemName、ItemAssigned) を持つ項目テーブルに項目のリストがあるとします。ItemID は、テーブルのハッシュ キーです。アイテム ID は、アイテム 1、アイテム 2、アイテム 3 などのように名前が付けられます。ユーザーは、テーブル内のアイテムが何であるかを知りません。そのため、アプリでユーザーが「アイテムを取得」ボタンをタップすると、ランダムなアイテムが取得され、ユーザーに割り当てられます。次に、ItemAssigned が YES に設定されます。[アイテム] タブ アイテムは他のユーザーに割り当てられません。これが起こることです。
手順:
1. [アイテムを取得] をタップします。
2. ItemAssigned = NO のアイテム テーブルから最初のアイテムをスキャンします
。 3. ホーム画面にアイテムを表示します
。 4. Items テーブルのアイテムを更新して、ItemAssigned = YES に設定し ます。
これは、一度に 1 人のユーザーがアイテムを取得しようとしている場合にうまく機能します。この問題は、2 人のユーザー A と B が同時にアイテムを取得しようとしていて、両方のユーザーに同じアイテムが割り当てられている場合に発生します。
したがって、最初に A がアイテムを取得します。Items テーブルが更新されて ItemAssigned = YES に設定される前に、B も同じ項目をフェッチします。これで、A と B の両方のホーム画面に同じアイテムが表示されます。これは間違っています。
唯一の方法は、単一の API を使用して Items テーブルをスキャンして更新することです。Amazon DynamoDB でこれを行う可能性はありますか?
ありがとう。