mikhailk
26.06.2013, 15:37
Сервис позволяет пользователю самостоятельно менять ник в игре и встала задача обеспечения его жесткой уникальности.
Т.е., например, следующие ники являются одним ником:
Сера (все буквы русс)
СЕРА (все буквы русс)
Cepa (все буквы лат)
СеРa (часть букв из русского алфавита, часть из латинского и т.д.)
и т.д.
Я пока вижу такой путь решения задачи - одновременно с записью ника пользователя в базу, записывать его вариант в приведенном виде (например, верхний регистр, все кириллические буквы, имеющие аналог в латинском алфавите, заменены на латинские). Потом, когда другой пользователь хочет поменять себе ник, вычислять приведенное значение для его нового ника и проверять уникальность в базе по нему.
Может кто знает способ сделать это проще?
Можно, конечно, обойтись без приведенных ников, но тогда строить для нового ника пользователя коллекцию всевозможных комбинаций и прогонять их всех по базе? Это мне кажется плохим решением.
Т.е., например, следующие ники являются одним ником:
Сера (все буквы русс)
СЕРА (все буквы русс)
Cepa (все буквы лат)
СеРa (часть букв из русского алфавита, часть из латинского и т.д.)
и т.д.
Я пока вижу такой путь решения задачи - одновременно с записью ника пользователя в базу, записывать его вариант в приведенном виде (например, верхний регистр, все кириллические буквы, имеющие аналог в латинском алфавите, заменены на латинские). Потом, когда другой пользователь хочет поменять себе ник, вычислять приведенное значение для его нового ника и проверять уникальность в базе по нему.
Может кто знает способ сделать это проще?
Можно, конечно, обойтись без приведенных ников, но тогда строить для нового ника пользователя коллекцию всевозможных комбинаций и прогонять их всех по базе? Это мне кажется плохим решением.