我将表命名为message_tbl
dynamodb用于消息传递系统。
为了获取与特定conversation_id相关的所有消息项,我设计了这样的表:
属性是:
主哈希键=>conversation_id
主排序键=>date_time
其他属性=> sender_id
,message
conversation_id date_time sender_id message
123456 2016-12-27 06:00:39 pm 10 hai how are you..?
123456 2016-12-27 06:01:00 pm 11 I am fine
123456 2016-12-27 06:01:12 pm 10 ok
123456 2016-12-27 06:01:12 pm 14 Hai man. How are you.?
由 => 10 和 14 同时发送的最后两个条目sender_id
可能有机会发生。?如果发生这种情况,将用相同的主键替换属性值,并且会发生数据丢失。我应该使用一个唯一的随机 6 位字符串作为辅助本地索引吗?我可以从中逃脱..?
如果我将二级索引设置为排序键(唯一随机字符串) ,则将项目放入具有相同会话 ID 和日期时间的数据库可以接受。?如果我做错了,请让我设计桌子。
注意:我使用的是 PHP Codeigniter MVC 框架。