Vote architecture issues
This is second a call for help on a voting architecture. I really need on that, especially from people who worked with large databases and security issues.
I have to implement a vote for best logo system in a new project.
Basic information I can give is:
More than 400 000 users should be 'technically' able to vote.
And this is not a view of my mind, it should be indeed slightly more.
I have to identify users, but I can't take their names, because most of them will be kids.
So the only data we can use is their school.
I have already a database storing all shools details. They are referenced by a unique number.
The problem is also that kids are unlikely to know this number.
So I can use eventually a narrowing path, to ask, for example the county where they live, the town where they live, and eventually the suburbs where is their school, and eventualy let them pick a school from a list.
This idea should work but I found that very 'heavy' for a simple vote system.
An other approach would be to let them enter their school name, and using something like Soundex (Thanks by the way Fabrice !), doing phonetical search to find their school.
The problem here are multiple:
First a School name is use many times in different counties, so I must ask at least their county name.
Also on the security level, does somebody know implications I should consider, like SQL injection or other bad hammer queries.
An other issue I have is to avoid kids (obviously they like playing !) clicking many times on the submit button. I don't have the physical hardware architecture to handle millions of records !
I was thinking about sessions. The issue here is that they vote from school, many kids can use the same computer ! So I don't know how to solve that!
For the multiple entries issue, I suggested to limit the number of allowed votes per school.
Well if you have any suggestions on that you're welcome !