Thanks Roshni,

I'm not sue how #d will work when users are actually voting on a comment. What 
happens when two users vote on the same comment simultaneously? How do you 
update the entries in #d column family to prevent duplicates?

 Also #a and #c can be combined together using TimeUUID as comment ids.

- Drew



On Sep 27, 2012, at 2:13 AM, Roshni Rajagopal <roshni_rajago...@hotmail.com> 
wrote:

> Hi Drew,
> 
> I think you have 4 requirements. Here are my suggestions.
> 
> a) store comments : have a static column family for comments with master data 
> like created date, created by , length etc
> b) when a person votes for a comment, increment a vote counter : have a 
> counter column family for incrementing the votes for each comment
> c) display comments sorted by date created: have a column family with a dummy 
> row id  'sort_by_time_list',  column names can be date created(timeUUID), and 
> column value can be comment id 
> d) display comments sorted by number of votes: have a column family with a 
> dummy row id 'sort_by_votes_list' and column names can be a composite of 
> number of votes , and comment id ( as more than 1 comment can have the same 
> votes)
> 
> 
> Regards,
> Roshni
> 
> > Date: Wed, 26 Sep 2012 17:36:13 -0700
> > From: k...@mustardgrain.com
> > To: user@cassandra.apache.org
> > CC: d...@venarc.com
> > Subject: Re: Data Modeling: Comments with Voting
> > 
> > Depending on your needs, you could simply duplicate the comments in two 
> > separate CFs with the column names including time in one and the vote in 
> > the other. If you allow for updates to the comments, that would pose 
> > some issues you'd need to solve at the app level.
> > 
> > On 9/26/12 4:28 PM, Drew Kutcharian wrote:
> > > Hi Guys,
> > >
> > > Wondering what would be the best way to model a flat (no sub comments, 
> > > i.e. twitter) comments list with support for voting (where I can sort by 
> > > create time or votes) in Cassandra?
> > >
> > > To demonstrate:
> > >
> > > Sorted by create time:
> > > - comment 1 (5 votes)
> > > - comment 2 (1 votes)
> > > - comment 3 (no votes)
> > > - comment 4 (10 votes)
> > >
> > > Sorted by votes:
> > > - comment 4 (10 votes)
> > > - comment 1 (5 votes)
> > > - comment 2 (1 votes)
> > > - comment 3 (no votes)
> > >
> > > It's the sorted-by-votes that I'm having a bit of a trouble with. I'm 
> > > looking for a roll-your-own approach and prefer not to use secondary 
> > > indexes and CQL sorting.
> > >
> > > Thanks,
> > >
> > > Drew
> > >
> > 

Reply via email to