みやたくワークスの徒然ブログ

みやたくワークスの徒然ブログ

PR

×

Profile

たくぷれっさ2号機

たくぷれっさ2号機

Calendar

Archives

2026.05
2026.04
2026.03
2026.02
2026.01
2020.10.27
XML
カテゴリ: DynamoDB
以前にAmplify + GraphQLでテーブルを作成した際は、あまり深いこと調べなかったので、プライマリーキーは必ず

id : ID!

にしないといけないのか、程度にしか認識してなかったんですが、そんなわけないだろ、と改めて思いちゃんと調べました。

type  テーブル名  @model @key (fields: [" パーティションキー "] )
type テーブル名 @model @key (fields: [" パーティションキー "," ソートキー "] )

で設定できるようです。

1つ目の例では、パーティションキーがプライマリキーになります。
2つ目の例では、パーティションキー+ソートキーがプライマリキーになります。

以下、実例。


1.パーティションキーがプライマリキーのパターン

type TMGPSUser @model @key(fields: ["userID"]) {

    userID: String!

    userName: String!

    useCloud: Boolean!

    userPass: String!

    joinGroup: Boolean

    groupName: String

    groupPass: String

    appVersion: String!

    passLimit: String!

    ldel_Flg: Boolean!

    ldel_Date: String

}


2.パーティションキー+ソートキーがプライマリキーのパターン

# Groupに所属しているユーザー一覧

type TMGPSGroupUserList @model @key(fields: ["groupName","userID"]) {

groupName: String!

userID: String!

userName: String!

}



なお、id : ID! でパーティションキーを設定している場合は、以下のようにすることで、パーティションキー+ソートキーをプライマリキーにできます。(たぶん)

# サンプルテーブル

type TMGPSSample @model @key(fields: ["sortKey"]) {

    id        : ID!

    sortKey: String!

    property: String!

}


ちなみに、以下のようにすると @key 指定しなくてもパーティションキーとソートキーをプライマリキーにできるはず。
試してないから断定できないけど。。。

# サンプルテーブル

type TMGPSSample {

    id        : ID!

    sortKey: ID!

    property: String!

}






お気に入りの記事を「いいね!」で応援しよう

Last updated  2020.10.27 18:26:48
コメント(0) | コメントを書く
[DynamoDB] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: