問題タブ [amazon-dynamodb-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
163 参照

amazon-dynamodb - 複数のフィールドのハッシュを使用して DynamoDB グローバル セカンダリ インデックスを作成する方法を教えてください。

私にとって、「ハッシュ」という言葉は、DynamoDB 内の複数のフィールドで構成されるハッシュが可能であることを示しています。ただし、私が見つけたすべての記事は、単一の値のみで構成される「ハッシュ」を示しています...これは私には意味がありません。

私のテーブルは次のフィールドで構成されています。

  • uid (PK)
  • プロバイダー
  • 識別子
  • から
  • date_received
  • date_processed

目標は、アプリがデータを取得する方法に基づいて複数のインデックスを作成することです (もちろん、PK 以外で)。組み合わせは次のとおりです。

  1. プロバイダーのメッセージ識別子による:必要な
    ハッシュ: プロバイダー + 識別子

  2. 会話メッセージ識別子による:
    望ましいハッシュ: from + to

  3. 受け取った日付までに処理された場合
    希望のハッシュ: _ac

  4. 受け取った日付までに処理された場合
    希望のハッシュ: アカウント

これは、私が試して成功しなかったものの例の1つです...

0 投票する
0 に答える
47 参照

amazon-web-services - 単一の DynamoDB テーブルで 3 つのエンティティの結合をモデル化する方法は?

単一のテーブル設計を使用して DyanamoDB で作成したい単純なリレーショナル モデルがあります。モデルはレストラン レビュー アプリ用です。

エンティティは次のとおりです。

  • ユーザー => user` には 1 対多のレビューがあります
  • レビュー => レストランには 1 対多のレビューがあります
  • レストラン => レビューには 1 人のユーザーがいます

ユーザーにはemailとがありますdisplayName

アクセスパターン:

  1. 1 人のユーザーのすべてのレビューを一覧表示する
  2. レストランのレビューを一覧表示する
  3. displayNameレビューを作成したユーザーの を持つレストランのすべてのレビューを検索します。

私は苦労しています 3: レビューdisplayNameを作成したユーザーのレストランのすべてのレビューを検索します。

displayNameレビュー アイテムに保存することはできますが、ユーザーが を更新した場合は、displayNameすべてのレビューをこの displayName で更新する必要があります。

restaurant review接続方法とuser単一のクエリで苦労しています。私が得た最も近いものは次のとおりです。

上記のデザインの GSI を使用して、パターン 1 と 2 を満たすことができますが、3 は満たせません。また、レビューがレストランに関連するようにデザインを反転しようとしましたが、満足のいくパターン 3 に到達することはできません。

単一のクエリで、単一のテーブル設計で私がやろうとしていることは可能ですか? うまくいく2つのクエリでこれを行うことができたとしても。

ここでアドバイスをいただければ幸いです。

0 投票する
2 に答える
192 参照

amazon-dynamodb - DynamoDB のセカンダリ インデックスは一意ではありませんか?

パーティションキーのみ(ソートキーなし)でセカンダリインデックスを設定したのですが、実際には同じパーティションキーで複数の項目を挿入できることがわかりました。

セカンダリ インデックスのパーティション キーを使用してクエリを発行すると、パーティション キーが指定されたパーティション キーの値と等しいすべてのアイテムが取得されます。

DynamoDB初心者です、パーティションキーのみでセカンダリインデックスを設定するか知りたいのですが、同じパーティションキーで複数項目を挿入するのが良いと思います。

私は Amplify.js を使用しており、次の GraphQL スキーマがあります。

ご覧のとおり、テーブルには (並べ替えキーなしで)パーティション キーが関連付けられCareerたセカンダリ インデックスがあります。しかし、私は通常の aを照会できます。byOwnerownercareersUserMeta

従来の RDBMS では、インデックス列を同じにすることはできません。DynamoDB でこれが可能である理由がわかりません。これは DynamoDB でのベスト プラクティスですか??

byOwnerインデックスにソートキーを設定する必要がありますか? 多分ソートキーはid列になることができますか?