Here's what im looking to do...

I have a database of unique websites (submitted by users), each with a score of how many votes they have for that URL/Website.

Then i want to rank these URL's based on the score, and show their current ranking out of every website in the database. 1st, 2nd, third, third, fourth etc..

I can do the above fine, but i would like to display the change in ranking (similar to the 'change' on Top 100 Blogs - 1 to 25 - Technorati) from 30 days previous too. This is where i come into difficulties.

I need a way to calculate what the ranking was 30 days previous, or somewhere to save the rank 30 days ago somehow.

Note: If the website was added withing the 30 days, i'd like to use the ranking it had when it was first added.

Whats the best way to store this data and work out the 'change'?