建模复杂的关系DynamoDb

时间:2019-06-20 11:02:33

标签: nosql amazon-dynamodb dynamodb-queries

我有一个文档管理系统,我希望添加一个共享功能,其中向用户提供了链接或别名,并根据该链接检索了文档。我可以用传统的rdms创建模型,没问题,但是我们已经在dynamodb中找到了文档。当我尝试将此模型从概念上转换为dynamodb时,我很挣扎。真的感觉就像我在试图将一个圆钉固定在一个方孔中。

  • 文档(DocumentId,正文,LastUpdated)
  • DocumentAlias (DocumentAliasId,DocumentId,ExpiryDate)
  • DocumentAliasUser(DocumentAliasUserId,DocumentAliasId, LastAccessed)

    CREATE TABLE Document (
        DocumentId Int,
        Body varchar(max),
        LastUpdated DateTime
    );
    
    CREATE TABLE DocumentAlias (
        DocumentAliasId Int,
        DocumentId Int,
        ExpiryDate DateTime
    );
    
    CREATE TABLE DocumentAliasUser (
        DocumentAliasUserId Int,
        DocumentAliasId Int,
        LastAccessed DateTime
    );
    

我已尝试根据这些方案创建查询和设计模型,以定义分区键,排序键,主键,复合键和GSI,这些都可以实现我的结果,但是我找不到任何可以满足我所有查询要求的内容场景。

  • 创建文档
  • 从现有文档创建别名
  • 检索特定文档
  • 从文档别名检索文档
  • 将别名与用户相关联
  • 更新现有文档
  • 在用户访问别名时更新
  • 删除现有文档
  • 从文档中删除别名
  • 从用户删除别名
  • 列出用户拥有的所有文档
  • 列出与用户共享的所有文档

0 个答案:

没有答案