Como hago un sistema de encuestas para que no se pueda votar mas de una vez

Estoy intentando hacer un sistema de encuestas, como los que se pueden poner en este foro, al parecer no muy complicado, pero me atasque en el punto de, como hacer que una persona no vote mas de 1 vez,

me doy a entender?
Hola, dale un id (generalmente es un número) a cada usuario y deshabilita el botón para el usuario que ya ha votado (el tema y el voto como tal también deben tener un id en la base de datos para poder compararlos).

Ahora, si los usuarios no están registrados, entonces puedes hacer lo mismo en base a la dirección IP (el usuario puede cambiar la IP) de cada usuario o utilizando cookies para guardar la información (aunque este último no es muy buen sistema, puesto que el usuario puede borrar las cookies o tenerlas deshabilitadas).

Saludos.
Ok, muy buena opcion, pero para el caso que hayan votado 100 usuarios, no tendra que comprobar 100 veces si tu eres uno de los que ya votaron, para desabilitar un boton, sobecargando la pagina??
No necesariamente. Lo que tendrías que hacer es hacer del ID del voto una foreign key en la tabla de los usuarios, así, al extraer los datos desde la base, simplemente tendrías que comprobar si el campo de ID corresponde con el ID del voto y no los NNN votos. Dicho de otra manera, es como insertar una bandera que diga "sí, este usuario ya voto".

Saludos.
No estarán votando muchos a la vez, de modo que tampoco creo que sature el servidor. No me preocuparía por eso a no ser que esperes cientos de votos cada segundo y,.... ojalá fuera así, no? je je je

Un abrazo!