In principle, yes. In practice, I bet most pairs of users don’t occur (“long-tail” users neither vote much nor get voted on much). And the software needs to keep track of every vote anyway, so it can show you what votes you’ve already made and stop you voting twice.
Yes, you are right. Actually, if the underlying database associates each vote with a post already, you don’t need any additional data structures, you can do it all through SQL queries...
That might actually be a devil-in-the-details thing, and gameable by rules mechanics, too.
Another point is technical issues—you want to keep track of interactions (up/downvoting) between pairs of users and that’s an O(n^2) problem.
In principle, yes. In practice, I bet most pairs of users don’t occur (“long-tail” users neither vote much nor get voted on much). And the software needs to keep track of every vote anyway, so it can show you what votes you’ve already made and stop you voting twice.
Yes, you are right. Actually, if the underlying database associates each vote with a post already, you don’t need any additional data structures, you can do it all through SQL queries...