Задать вопрос

Варианты свободных логинов при регистрации. Какой алгоритм?

Ситуация:
Человек регистрируется на сайте, но выбранный логин уже занят.

Задача:
Предложить пользователю (сгенерировать) несколько вариантов логина, которые гарантированно свободны. При этом эти варианты должны быть более менее осмысленные. Не случайный набор символов.

Проблема:
Как это сделать (алгоритм)? Мой вариант, такой.
1. Допустим логин "dima". Найти в базе все логины содержащие подстроку "dima" и поместить в массив.
2. Генерируем предположительно свободные логины по принципу добавления в начало и/или в конец искомой подстроки некоторых, заранее определенных символов. Например, "mr.dima", "dima-2014" и т.д. Эти логины помещаем во второй массив.
3. Ищем в первом массиве логины из второго массива. Те, что не найдены предлагаем пользователю.

Подход вроде рабочий, но все же хотелось бы услышать мнение профессионалов. Возможно уже приходилось делать что-то подобное? Как сделано у Вас?
  • Вопрос задан
  • 5731 просмотр
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@vagrand
1. Мне кажется, что этот пункт будет при большой базе довольно затратным, особенно если искать так: WHERE login LIKE "%dima%".

Как по мне лучше сперва создать список предложений, а потом проверить какие из них есть в базе: WHERE login in ('...', '...', ...)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы