I'm trying to create a voting table and maximize performance. Since a vote can only be UP or DOWN, I'm thinking of using `bit` where `1 = up` and `0 = down` is this unintuitive? is there a better way?

```
UserVotes (3 way primary key between all three tables)
+----------+----------+-------------+
|  UserID  |  IsUp    | CommentID   |
+----------+----------+-------------+
|    1     |  1       |  99         |
|    2     |  0       |  99         |

```

etc.

The updates will happen when a user clicks a vote up or a vote down button

```
If VoteUpButtonClicked Then
    VoteService.Add(userID,True, CommentID)
End If

If VoteDownButtonClicked Then
     VoteService.Add(userID, False, CommentID)
End If

```

Then the calls will be "count"

```
Dim TotalUpVotes = VoteServce.QueryVotes().Where(Function(v) v.IsUp And v.CommentID = CommentID).Count
Dim TotalDownVotes = VoteService.QueryVotes().Where(Function(v) Not v.IsUp And v.CommentID = CommentID).Count

```

I'm using SQL Server 2008 and Linq to SQL.

And yes, I would like to allow users to delete a vote.