Я долгое время работал с реляционными базами данных, а теперь собираюсь работать с DynamoDB. После, работая с реляционными базами данных, я изо всех сил пытаюсь разработать некоторые из наших текущих таблиц SQL в DynamoDB. В частности, решение о разделах и ключах сортировки. Попробую пояснить на примере:
Текущие таблицы:
Student: StudentId(PK), Email, First name, Last name, Password, SchoolId(FK)
School: SchoolId(PK), Name, Description
Я думал объединить эти таблицы в DynamoDB и использовать SchoolId в качестве ключа раздела, StudentId в качестве ключа сортировки. Тем не менее, я видел, что в некоторых подобных примерах в качестве ключа разделения используется StudentId.
И затем я понял, что мы используем «имя пользователя» в каждой функции входа в систему, поэтому приложение будет часто запрашивать «имя пользователя» (иногда с паролем или токеном авторизации). Эта ситуация заставляет меня задуматься; SchoolId как ключ раздела и имя пользователя как ключ сортировки.
Мне нужны некоторые идеи о том, что было бы лучше всего в этом случае, и некоторые предложения, которые помогут мне лучше понять концепции NoSQL и DynamoDb.