Как создать уникальный UID из электронной почты пользователя в RESTful API? - PullRequest
0 голосов
/ 25 августа 2018

Я создаю WebService для веб-сайта, в котором мне нужно сгенерировать UID из user email / name. И этот процесс должен быть только на этапе регистрации пользователя. Как и у нас, у нас есть уникальный идентификатор твиттера . У меня есть несколько вопросов:

  1. Это должно быть ответственностью клиента или WebService?

    • Я думаю, что это должно быть WebService.
  2. Если веб-сервис отвечает, то какова должна быть логика для генерации 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;

1 Ответ

0 голосов
/ 25 августа 2018

Вы можете использовать функцию php uniqid для создания уникального идентификатора пользователя и сохранить его в столбце уникального идентификатора таблицы пользователя.Он будет уникальным. Вы можете использовать приведенный ниже код для генерации некоторых уникальных идентификаторов.

<?php
echo uniqid("username");
?>
...