Как генерировать альтернативные предложения имени пользователя? - PullRequest
2 голосов
/ 18 марта 2011

Заранее извиняюсь за заголовок вопроса, я не могу придумать лучшего способа его задать.

В некоторых системах электронной почты (например, Yahoo), если имя, которое вы хотите, занято, система будетпредложить имя, добавив число в конце (например, если взято CloudStrife , вы получите CloudStrife01 ).

Как реализовать такую ​​систему, каквы обнаруживаете, сколько существует дубликатов имени (так что если есть CloudStrife , CloudStrife01 и CloudStrife02 , должно быть 3 экземпляра CloudStrife ).Помимо хранения количества дубликатов, какие еще есть решения?

Ответы [ 4 ]

2 голосов
/ 18 марта 2011

Количество дубликатов в любом случае не сильно поможет, представьте, что будет CloudStrife, вы предлагаете пользователю CloudStrife01, но вместо этого он выбирает CloudStrife02. Таким образом, у вас есть два CloudStrifes, но CloudStrife02 все еще недоступен. Вы всегда должны сверяться с базой данных. Возможно, если имя взято, выберите имена, которые совпадают с любым суффиксом, а затем выберите и предложите имя, которого нет в этом наборе.

1 голос
/ 18 марта 2011

Я бы выбрал все имена пользователей, используя сопоставление с образцом.

SELECT username FROM users WHERE username LIKE 'CloudStrife%'

Теперь мы получаем все имена пользователей, которые начинаются с CloudStrife, и, таким образом, нам не нужно делать еще один запрос к базе данных, просто чтобы проверить, взято имя, которое мы собираемся рекомендовать, взято или нет.

0 голосов
/ 18 марта 2011

Если имя пользователя недоступно:

Уберите любые цифры с конца выбранного имени пользователя. Инициализируйте целое число в 1, затем объедините это целое в конец заглушки имени пользователя.

Если это имя пользователя также занято, увеличьте целое число и повторите процесс объединения / проверки.

0 голосов
/ 18 марта 2011

Создайте 2 или 3 критерия, например добавьте дату рождения в конце, добавьте фамилию в конце, измените последовательность в имени и перед предложением, если она уже существует или нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...