【发布时间】:2019-03-14 19:28:29
【问题描述】:
我长期使用关系数据库,现在我将使用 DynamoDB。之后,使用关系数据库,我正在努力在 DynamoDB 中设计我们当前的一些 SQL 表。特别是,决定分区和排序键。我将尝试用一个例子来解释:
当前表:
Student: StudentId(PK), Email, First name, Last name, Password, SchoolId(FK)
School: SchoolId(PK), Name, Description
我正在考虑在 DynamoDB 中合并这些表,并使用 SchoolId 作为分区键,使用 StudentId 作为排序键。但是,我看到一些类似的示例使用 StudentId 作为分区键。
然后我意识到,我们在每个登录功能中都使用“用户名”,因此应用程序会经常使用“用户名”(有时使用密码或身份验证令牌)进行查询。这种情况让我思考; SchoolId 作为分区键,用户名作为排序键。
我需要一些关于在这种情况下最佳实践的想法和一些建议,以帮助我更好地理解 NoSQL 和 DynamoDb 概念。
【问题讨论】:
标签: nosql amazon-dynamodb relational-database