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

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

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

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

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

Подход вроде рабочий, но все же хотелось бы услышать мнение профессионалов. Возможно уже приходилось делать что-то подобное? Как сделано у Вас?
  • Вопрос задан
  • 5751 просмотр
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@vagrand
1. Мне кажется, что этот пункт будет при большой базе довольно затратным, особенно если искать так: WHERE login LIKE "%dima%".

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

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

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