Я пытаюсь понять, как таблицы DynamoDB работают с GSI, и меня очень смущает их документация.
Из этой ссылки таблица музыкальной библиотеки выглядит следующим образом в формате JSON (если я правильно понимаю):
// Music Library Table
[
{
"song_id": "song-129", // Partition Key
"details": { /** details is a Sort Key */
"title": "Wild Love",
"artist": "Argyboots",
"downloads": 15000,
// etc.
},
"month-2018-01": { /** Also a Sort Key? */
"month": "2018-01", /** GSI Primary Key */
"month_total": 1000 /** GSI Secondary Key */
},
"download_id_1": { /** Also a Sort Key? */
"time": "timestamp"
},
"download_id_2": { /** Also a Sort Key? */
"time": "timestamp"
},
"download_id_3": { /** Also a Sort Key? */
"time": "timestamp"
},
}
]
Кажется, есть несколько комбинаций Primary Keys = (Partition Key + Details / Month / DownloadID)
. Но они написали
и Sort-Key = DownloadID
Также по этой ссылке таблица HR выглядит следующим образом:
// HR Table
[
{
"employee_id": "hr-974", /** Partition Key */
"employee_name": { /** Also a Sort Key? */
"name": "Murphy, John",
"start_date": "2008-11-08",
// etc.
},
"YYY-Q1": { /** Also a Sort Key? */
"order_total": "$5,000",
"name": "Murphy, John"
},
// ...
"v0_job_title": { /** Also a Sort Key? */
"job_title": "operator-1",
"start_date": "2008-11-08",
// etc.
},
"v1_job_title": { /** Also a Sort Key? */
"job_title": "operator-2",
"start_date": "2008-11-10",
// etc.
}
}
]
Но похоже, что нет, потому что:
Использование глобального вторичного индекса для поиска всех сотрудников, работающих на определенном складе, путем поиска по идентификатору склада (например, Warehouse_01).
Кажется, склады имеют свои собственные записи со своими идентификаторами.
Так как должны выглядеть таблицы в формате JSON?