Hi Jacob, Thank you for your helpful reply, i really appreciate it. Your solution to my first problem is great, it is much simpler compared to the solution i came up in the meantime which involved a extra table and a extra query to displaying the list. Cheers again!
Kind regards, Tinus On Sat, Dec 14, 2013 at 5:40 AM, Jacob Rhoden <jacob.rho...@me.com> wrote: > Hi Tinus, > > > On 12 Dec 2013, at 6:59 pm, Tinus Sky <tinus...@gmail.com> wrote: > > > > My service does have users who can add a message to a list. The list of > message is sorted by date and displayed. When a user changes the message > the date is changed and the message moves to the top of the list. > > > > A possible solution is to remove row and insert it again, but i suspect > this might be not the best solution. Is there a alternative solution? > > Just insert a new "version" of the message, with a version field into the > table/columnfamily. When outputting query results to the user, filter/hide > older versions. And bam you have a new feature in your web site called > "show old versions" or "show previous edits". > > > My second question is regarding the number of tables/column families in > a keyspace. > > > > I can create a table which contains all messages from all users. But i > can also create one table for every user which has a name like: > messages_[userid], where [userid] is the id of the user. Or i can shard: > messages_a (contains messages from user where name starts with a), > messages_b (contains messages from user where name starts with b) > > > > My users count is around 100.000. And the messages per user are approx > around 20.000. > > > > What would be the choice: put everything in 1 big table or go with the > many small tables option. > > I'm pretty sure you don't want to put 100,000 tables in a Cassandra key > space. Go with one. > > Regards, > Jacob