AWS DynamoDB中具有唯一值的ID值



在我的单表DynamoDB设计中。我有UUID has Id,尽管当我想创建唯一的值时,这是一个麻烦和昂贵的过程,因为我必须扫描数据库中的名称,因为DynamoDB条件表达式的工作方式是它将检索PK和SK的一个值并进行比较https://www.alexdebrie.com/posts/dynamodb-condition-expressions/这非常有效。

因此,UUID并没有被使用,而只是实体的名称作为用_填充空格的ID。例如:戴尔公司,The_Facebook公司。所以当我想检索一个ID项目时,我几乎会使用这个名称。只使用name作为Id是否存在安全问题,或者这是反模式的。

我可以做的另一种方法是添加一个简单的散列函数来创建Id,该Id基于名称是可复制的,因此我们可以使用条件表达式基于PK和SK来保持唯一性。

function hashCode(s) {
for(var i = 0, h = 0; i < s.length; i++)
h = Math.imul(31, h) + s.charCodeAt(i) | 0;
return h;
}

我相信你的问题是:"将CCD_ 1作为分区密钥存储在DynamoDB中是否安全;?

DynamoDB中存储的数据在默认情况下是安全的,所有表都启用了服务器端加密。您可以使用自己的KMS密钥进一步控制加密类型。

使用name而不是UUID并不是一种反模式,只要它的基数不低,就会影响吞吐量性能。

最新更新