Я создаю WebService для веб-сайта, в котором мне нужно сгенерировать UID
из user
email
/ name
. И этот процесс должен быть только на этапе регистрации пользователя. Как и у нас, у нас есть уникальный идентификатор твиттера . У меня есть несколько вопросов:
Это должно быть ответственностью клиента или WebService?
- Я думаю, что это должно быть WebService.
Если веб-сервис отвечает, то какова должна быть логика для генерации UID
из myname@example.com
.
- Одним из решений может быть извлечение
myname
из электронной почты и добавление user_id к его последнему. Но для auto-generated user_id
(MYSQL) это не может быть решением. Кроме того, вся идея использования UID состоит в том, чтобы скрыть user_id (целое число) от URL в браузере, поэтому это решение снова представит user_id.
- Другое решение может заключаться в добавлении некоторых случайных чисел в конце
myname
, и, если происходит ConstraintViolation
, попробуйте другое число. Но это займет уйму времени только для операции регистрации пользователя.
Каков идеальный и эффективный способ справиться с этим требованием?
Это моя схема таблицы MySql:
CREATE TABLE IF NOT EXISTS `user` (
`user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`unique_id` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(500) NULL,
`first_name` VARCHAR(45) NOT NULL,
`last_name` VARCHAR(45) NOT NULL,
`created_on` DATETIME NOT NULL,
`gender` VARCHAR(2) NULL COMMENT 'M - male\nF - female\nO - other',
UNIQUE INDEX `unique_id_UNIQUE` (`unique_id` ASC),
UNIQUE INDEX `email_UNIQUE` (`email` ASC),
PRIMARY KEY (`user_id`))
ENGINE = InnoDB;