I am creating a jsp page where a single news item is shown, just like the single question on this StackOverflow page. I need to store the view count in a database.
I can simply increment the view count in the database this way:
`UPDATE table SET views=views+1 WHERE newsId=4458;`
But what if a single user hits that page again and again and again, say 50 times… In this case, my view count will not represent unique visitors to the site. How can I avoid this?
I want something like StackOverflow’s view count system.
well one solution could be you make a new table (lets say its called views) with the following columns ‘viewid’ ‘newsid’ ‘ipaddress’ (obviously newsid is the foreign key)
every time someone visits ur website u check if his ip is already in that table for that news item.
if count equals 0 you insert like this
Now when you want to fetch the viewcount:
you can enhance this by adding another column called ‘count’ and ‘lastviewed’ (type datetime) to the table views.
Lets say you allow every ip to be counted another time if the day doesnt match.
This way you will get a pretty accurate viewcount 🙂
to fetch the new viewcount you can simply use SUM
Good luck 🙂