How do I implement a Voting system?
I am required to implement a functionality similar to SO voting. I tried to look up some existing questions around this topic and noticed that most people are stuck with how to vote up and down. i am past that. my problem is related to how to handle after a vote has been upvoted. here is what i have done till now.
- Vote up, Down and Score displayed for each answer.
- Vote count changed when user clicks up or down and the im开发者_JAVA百科age is updated accordingly.
- Save the information in db like. who voted, time of vote, type of vote, userIP, ansID, etc.
Now the questions.
- I am using a gridview to display information. how do i show the previously voted answers as voted on next page load. I have the information in db but i want to do this without affecting performance. I could do it in itemDatabound event but it doesnt look like a pretty way to handle it. i wonder if there is a better way to handle such situation
- Toggle Votes : When a user toggles a vote, what happens behind the scenes. is the previous upvoted record deleted or not? i say it should be deleted but want a confirmation.
- Is gridview a good way to implement such functionality or not?
For
1) If you are using a gridview you almost have to take this route. But we need more details about what you are trying to do.
2) When you upvote and then downvote that same answer / question it should be checked and deleted. Remember you are only allowed 1 vote for a question or answer so your database table should be written so that their is a unique row for a userID, a QuestionID (given that a question is unique). So you should not even allow it to insert duplicate rows in a table.
3)stackoverflow is mvc type app, you are using webforms, so you could use a gridview or a listview. They are probably just looping through the answers and generating the html (as this is MVC).
精彩评论