Cómo almacenar de forma única una identificación de registro de GCM en MySQL

Estoy configurando el lado del servidor de un mecanismo de mensajería en la nube de Google, utilizando MySQL para almacenar los identificadores de registro proporcionados por la aplicación móvil. Dado que Google puede emitir hasta 4k ID de registro, me veo obligado a almacenarlos en un campo de texto. Todo bien hasta ahora, el problema es que tengo que manejar situaciones como esta:

Un usuario inicia sesión en la aplicación.La aplicación solicita un ID de registro de googleLa aplicación envía el nuevo ID de registro al servidor de aplicacionesEl servidor almacena ese ID de registro y lo vincula al usuario que ha iniciado sesión actualmenteEse usuario cierra sesión y un nuevo usuario inicia sesiónLa aplicación envía al servidor la misma identificación de registro que antesEl servidor debe poder ver que el ID de registro ya está en la base de datos pero está vinculado a otro usuarioEl servidor desvincula el ID de registro del usuario anterior y lo vincula con el nuevo usuario conectado.

Entonces, el problema es que tengo que asegurar una unicidad para el ID de registro en la base de datos pero no puedo agregar un índice ÚNICO para ese campo de TEXTO.

Posibles soluciones que podría pensar:

Calcule un hash de la identificación de registro y la fuerza de que el hash sea único, pero podría haber colisiones.Podría almacenar el ID de dispositivo único junto con el ID de registro y hacer que el ID de dispositivo sea único. El problema que veo es que no sé cuánto tiempo puede ser una identificación de dispositivo Android, y creo que hay algunos casos en los que no está disponible.Podría realizar una búsqueda cada vez que se reciba un nuevo ID de registro, pero creo que esto terminaría en una operación de rendimiento muy pobre.

Estoy seguro de que no soy el único que enfrenta ese problema, pero no puedo encontrar buenas soluciones. ¿Alguna idea sobre cómo puedo resolver esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta