Hi –  We are designing a Cassandra based storage for the following use cases-

 

·        Store SMS messages

·        Store MMS messages

·        Store Chat history

 

What would be the ideal was to design the data model for this kind of application ? I am thinking on these lines ..

 

Row-Key :  Composite key [ PhoneNum : Day]

 

·        Example:   19876543456:05022013

 

Dynamic Column Families

 

·        Composite column key for SMS [SMS:MessageId:TimeUUID]

·        Composite column key for MMS [MMS:MessageId:TimeUUID]

·        Composite column key for user I am chatting with [UserId:198765432345] – This can have multiple values since each chat conv can have many messages. Should this be a super column ?

 

 

19866666666:05022013

SMS:xxxx:ttttttt

SMS:xxx12:ttttttt

MMS:xxxx:ttttttt

XXXX:1933333333

19877777777:05022013

 

 

 

 

19878888888:05022013

 

 

 

 

 

 

Thanks,

Kanwar