Well I know what you mean and i have been doing that however im currently 
migrating an old mysql site onto cass and just trying to keep things consistent 
on the front end for the guy, i thought i might be missing a trick but if not 
then yeah I may well ditch the page linkage if it starts causing problems.
Cheers
Sam

Date: Tue, 27 Nov 2012 13:01:48 -0700
Subject: Re: Pagination
From: de...@fyrie.net
To: user@cassandra.apache.org

Do you really require page numbers? I usually find them annoying while paging 
through a forum, especially if it is quite active. Threads from the bottom of 
the page get bumped to the next page so you end up seeing the same content 
again. I much prefer the first page being the current N results, and the next 
page being the next N results after the last updated time of the last thread on 
the page. It is also much easier to model with Cassandra.


On Tue, Nov 27, 2012 at 12:19 PM, Sam Hodgson <hodgson_...@hotmail.com> wrote:





Hi All,
Wondering if anyone has any good solutions to pagination? In particular 
enumerating the number of pages and linking to each page, a common feature in 
forums.

This code is untested (using phpcassa) and may need tweaking to get the correct 
range of records or maybe completely wrong! however it shows the concept of 
taking a page number then pulling out a range of posts belonging to that page:

$cf_threads looks like:thread_ID => (timestamp => post_id)
if($page > 1)        {        $ranger = ($pagenumber * 20);        $low_ranger 
= $ranger - 20;
        $arr_range = $cf_threads->get("$thread_id" , $columns=null ,  
$column_start="" , $column_finish="" , $column_reversed=True, $limit=$ranger);  
      $arr_page = array_slice($arr_range, $low_ranger , $ranger , TRUE);
        }else                {                $arr_page = 
$cf_threads->get("$thread_id" , $columns=null ,  $column_start="" , 
$column_finish="" , $column_reversed=True, $limit=20);
                }
I think this should be ok? the only concern is if there are some really long 
threads when im having to pull the entire CF.
Another idea involved a schema change and using a super CF to include a page 
number as follows:

Thread_ID => (PageNumber(timestamp => Post_ID))
Probably more efficient but generally page numbers go backwards ie page 1 has 
newest content so this would complicate things when writing data and cause load 
if logic was included to reorganise page numbers etc.

Cheers
Samhttp://Newsarc.net                                     


-- 
Derek Williams

                                          

Reply via email to