我目前正在为以下用例设计dynamo DB模式:
公司可以拥有多个频道,然后对于每个频道,我都有多个频道卡。
我正在考虑使用以下表格:
频道表:
Partition Key: CompanyId
Sort Key: Combination of Time Stamp and deleted or not
现在获得公司的频道后,我需要获取其频道卡,为此,我想在ChannelCard上使用Table Schema。
ChannelCard表:
Partition Key: channelId
Sort Key: Combination of Time Stamp and deleted or not
现在要获取公司的频道卡,我需要执行以下操作:
1. First query the channels for the company using partition key (1 query)
2. Getting channel cards for each channel (number of channels query)
所以在这种情况下,我们会进行很多查询,在这种情况下,我们可以查询更少数量的查询吗?
欢迎任何有关修改数据库表或如何查询数据库的建议。
答案 0 :(得分:1)
你也可以
频道表
Partition Key: CompanyId
Sort Key: Deleted+timestamp
频道卡表
Partition Key: CompanyId
Sort Key: Deleted+ChannelCardTimeStamp
GSI #1:
Partition Key: ChannelId
Sort Key: Deleted+ChannelCardTimeStamp
通过这种方式,您可以查询任何指定公司的最新通道卡,也可以查询任何频道的最新通道卡。