Я пытаюсь создать таблицу голосования и максимизировать производительность. Поскольку голосование может быть только UP или DOWN, я думаю об использовании bit
, где 1 = up
и 0 = down
это неинтуитивно? Есть ли способ лучше?Помощь с использованием схемы схемы голосования
UserVotes (3 way primary key between all three tables)
+----------+----------+-------------+
| UserID | IsUp | CommentID |
+----------+----------+-------------+
| 1 | 1 | 99 |
| 2 | 0 | 99 |
т.д.
Обновления будут происходить, когда пользователь нажимает на голосование вверх или вниз голосование кнопка
If VoteUpButtonClicked Then
VoteService.Add(userID,True, CommentID)
End If
If VoteDownButtonClicked Then
VoteService.Add(userID, False, CommentID)
End If
Тогда звонки будут "считать"
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
Я использую SQL Server 2008 и Linq to SQL.
И да, я хотел бы разрешить пользователям удалять голоса.
Как вы будете использовать стол? Сколько обновлений в секунду? Сколько запросов в секунду? Какие запросы? –
Кроме того, какая база данных и версия? –
могут ли пользователи удалять свои голоса? – hunter