パーティションキーのみ(ソートキーなし)でセカンダリインデックスを設定したのですが、実際には同じパーティションキーで複数の項目を挿入できることがわかりました。
セカンダリ インデックスのパーティション キーを使用してクエリを発行すると、パーティション キーが指定されたパーティション キーの値と等しいすべてのアイテムが取得されます。
DynamoDB初心者です、パーティションキーのみでセカンダリインデックスを設定するか知りたいのですが、同じパーティションキーで複数項目を挿入するのが良いと思います。
私は Amplify.js を使用しており、次の GraphQL スキーマがあります。
type UserMeta @model @key(fields: ["owner"]) @auth(rules: [
{ allow: owner, operations: [create, delete, update] },
{
allow: groups,
groups: ["Admins"],
operations: [update, delete]
}
]) {
familyName: String
givenName: String
facebookUrl: AWSURL
twitterUrl: AWSURL
description: String
careers: [Career] @connection(keyName: "byOwner", fields: ["owner"])
owner: String!
}
type Career @model @key(name: "byOwner", fields: ["owner"]) @auth(rules: [
{ allow: owner, operations: [create, delete, update] },
{
allow: groups,
groups: ["Admins"],
operations: [update, delete]
}
]) {
id: ID!
company: String
companyUrl: AWSURL
industry: String
occupation: String
owner: String!
}
ご覧のとおり、テーブルには (並べ替えキーなしで)パーティション キーが関連付けられCareer
たセカンダリ インデックスがあります。しかし、私は通常の aを照会できます。byOwner
owner
careers
UserMeta
従来の RDBMS では、インデックス列を同じにすることはできません。DynamoDB でこれが可能である理由がわかりません。これは DynamoDB でのベスト プラクティスですか??
byOwner
インデックスにソートキーを設定する必要がありますか? 多分ソートキーはid
列になることができますか?