我到处都进行了研究,但很少有关于使用多个DynamoDB表的讨论。因此,我希望有人能对此有所启发。 请考虑以下情形:
数据库必须存储用户的书籍和用户的漫画。
最常见的访问模式是获取/放入一本书,获取/放入一本漫画,并查询整个书籍或漫画集。
以下哪个设计更好?
BooksTable
{PartKey:用户ID,SortKey:BookId1}
{PartKey:用户ID,SortKey:BookId2}
漫画表
{PartKey:用户ID,SortKey:ComicId1}
{PartKey:用户ID,SortKey:ComicId2}
要获取或放置一本书,您需要使用完整键{UserId,BookId1}来获取或放置在BooksTable上 要获取所有用户的书籍,请使用{UserId}
在BooksTable上进行查询SharedTable
{PartKey:用户ID,SortKey:BOOK#BookId1},
{PartKey:用户ID,SortKey:BOOK#BookId2},
{PartKey:用户ID,SortKey:COMIC#ComicId1},
{PartKey:用户ID,SortKey:COMIC#ComicId2}
要获取或放置一本书,请使用完整键{UserId,BOOK#BookId}进行获取或放置 要获取所有用户的图书,您可以使用{UserId}并使用SortKey条件Starts_With(BOOK#)
进行查询这里正确的选择是什么?