Как сохранить уникальный идентификатор регистрации GCM в MySQL

m настройка серверной части механизма Google Cloud Messaging с использованием MySQL для хранения регистрационных идентификаторов, предоставляемых мобильным приложением. Учитывая, что Google может выдавать до 4 000 идентификаторов регистрации, яЯ вынужден хранить их в текстовом поле. Пока все хорошо, проблема в том, что мне приходится справляться с такими ситуациями:

Пользователь входит в приложениеПриложение запрашивает регистрационный идентификатор у GoogleПриложение отправляет новый идентификатор регистрации на сервер приложений.Сервер сохраняет этот регистрационный идентификатор и связывает его с пользователем, которыйв настоящее время вошли в системуЭтот пользователь выходит из системы, а новый пользователь входит в системуПриложение отправляет на сервер тот же регистрационный идентификатор, что и раньшеСервер должен видеть, что регистрационный идентификатор уже находится в базе данных, но связан с другим пользователем.Сервер отсоединяет регистрационный идентификатор от предыдущего пользователя и связывает его с новым зарегистрированным пользователем

Поэтому проблема в том, что я должен обеспечить уникальность регистрационного идентификатора в базе данных, но я не могу добавить уникальный индекс для этого поля TEXT.

Возможные решения, о которых я мог подумать:

Вычислите хэш регистрационного идентификатора и сделайте так, чтобы хеш был уникальным, но могут возникнуть коллизии.Я мог бы сохранить уникальный идентификатор устройства вместе с идентификатором регистрации и сделать этот идентификатор устройства уникальным. Проблема в том, что я неНе знаю, как долго может быть идентификатор устройства Android, и я думаю, что в некоторых случаях это не так.т доступно.Я мог бы выполнять поиск каждый раз, когда получен новый регистрационный идентификатор, но я думаю, что это приведет к очень низкой производительности.

я уверен, что яЯ не единственный, кто сталкивается с этой проблемой, но я могуТам нет хороших решений. Любые мысли о том, как я могу решить это?

Ответы на вопрос(1)

Ваш ответ на вопрос