メッセージングシステムのdynamodbmessage_tbl
のように名前が付けられたテーブルがあります。
特定の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 によって同時に送信される最後の 2 つのエントリは、正しく発生する可能性があります。sender_id
その場合、 は属性値を同じ主キーに置き換え、データの損失が発生します。一意のランダムな 6 桁の文字列をセカンダリ ローカル インデックスとして使用しますか?
セカンダリインデックスをソートキー(一意のランダム文字列)として設定すると、同じconversation_idとdate_timeでアイテムをdbに入れても受け入れられます.? 私が間違っている場合は、テーブルを設計するように処方してください。
注: PHP Codeigniter MVC フレームワークを使用しています。