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