Uma maneira melhor seria ter uma tabela diferente para armazenar Votos. E essa tabela terá dois atributos (VoterId, CandidateId) E você pode buscar a contagem de votos se estiver permitindo vários votos desta tabela.
Mas seria melhor fazer VoterId uma chave primária nesta tabela. Para evitar votação múltipla
*EDIT:- Esquema editado com requisito alterado no post original
*EDIT:- Adicionado um campo na tabela CandidateType para permitir
multiple votes
.(Ex.:agora um eleitor pode votar em 10 Senators
, se maxVotePerVoter
para este tipo é definido como 10..)