0

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

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

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を照会できます。byOwnerownercareersUserMeta

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

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

4

2 に答える 2