Data display doesn't match with database

That one is a bit trickier, but I would probably go with something like what Nigel proposed in this thread…

So, when a user votes on an item, you add the item to a list on that user, and then you conditionally hide (or disable) the upvote button based on whether or not the item is in the user’s list. Does that make sense?