Amazon dynamodb DynamoDB中的多表与复合键

Amazon dynamodb DynamoDB中的多表与复合键,amazon-dynamodb,Amazon Dynamodb,我在任何地方都做过研究,但很少有关于使用多个DynamoDB表的讨论。所以我希望有人能对此有所启发。 考虑下面的场景: 数据库必须存储用户的书籍和漫画 最常见的访问模式是获取/放置一本书,获取/放置一本漫画,并查询整个书籍或漫画集合 以下哪种设计更好? 案例1:使用多个表格(一个用于书籍,一个用于漫画) 书桌 {PartKey:UserId,SortKey:BookId1} {PartKey:UserId,SortKey:BookId2} ComicTable {PartKey:UserId,S

我在任何地方都做过研究,但很少有关于使用多个DynamoDB表的讨论。所以我希望有人能对此有所启发。 考虑下面的场景:

数据库必须存储用户的书籍和漫画

最常见的访问模式是获取/放置一本书,获取/放置一本漫画,并查询整个书籍或漫画集合

以下哪种设计更好?

案例1:使用多个表格(一个用于书籍,一个用于漫画) 书桌

{PartKey:UserId,SortKey:BookId1}

{PartKey:UserId,SortKey:BookId2}

ComicTable

{PartKey:UserId,SortKey:ComicId1}

{PartKey:UserId,SortKey:ComicId2}

要获取或放置一本书,您需要使用完整键{UserId,BookId1}在BooksTable上执行get或put操作 要获取所有用户的书籍,您需要使用{UserId}查询BooksTable

案例2:使用复合排序键(类型#ID) 共享表

{PartKey:UserId,SortKey:BOOK#BookId1}

{PartKey:UserId,SortKey:BOOK#BookId2}

{PartKey:UserId,SortKey:COMIC#ComicId1}

{PartKey:UserId,SortKey:COMIC#ComicId2}

要获取或放置一本书,请使用完整键{UserId,book#BookId}执行获取或放置操作 要获取所有用户的书籍,请使用{UserId}和SortKey条件以(BOOK#)开头进行查询

这里的正确选择是什么?