Amazon dynamodb Dynamodb用户表

Amazon dynamodb Dynamodb用户表,amazon-dynamodb,Amazon Dynamodb,据我所知,dynamodb有两种定义主键的方法:只使用分区键的单个主键和需要同时指定分区键和排序键的组合键 我现在遇到的问题是,我不确定在这种情况下,users表应该有一个主键还是一个复合键 例如,用户表是单个主键的一个很好的例子,但我不确定它是否正确。一般来说,您可以将用户的电子邮件提升为主键,并将其作为分区键 当我面对同样的问题时,我使用了两个表: 在表1中我有所有用户数据,如: 许可证号码、姓名、电子邮件、密码等。。。其中,“许可证号码”是主要密钥,主要用于在需要时识别用户 …我还有一个表

据我所知,dynamodb有两种定义主键的方法:只使用分区键的单个主键和需要同时指定分区键和排序键的组合键

我现在遇到的问题是,我不确定在这种情况下,
users
表应该有一个主键还是一个复合键


例如,用户表是单个主键的一个很好的例子,但我不确定它是否正确。

一般来说,您可以将用户的电子邮件提升为主键,并将其作为分区键

当我面对同样的问题时,我使用了两个表:

表1中我有所有用户数据,如:

许可证号码、姓名、电子邮件、密码等。。。其中,“许可证号码”是主要密钥,主要用于在需要时识别用户

…我还有一个表2,其中包含以下字段:

电子邮件、许可证号码等。。。其中,“电子邮件”用于在用户登录时检索“许可证号码”

最后考虑:

由于DynamoDB不允许连接操作,我不得不拆分成两个表,并通过创建两个表来模拟连接,每个表都有一个主键,但绑定到相同的电子邮件/许可证号码字段


希望这有助于您选择正确的模式来构建用户表。

这对于做出决策来说不是决定性的。这完全取决于您对此表的访问模式。如果您只想获得一个id为的用户,那么userId的主键就足够了。这是用户最常见的访问模式。但您可能还有其他需求,如查询最活跃的用户、拥有汽车的用户等。对于这些,您可能会使用GSIs