我正在为一个网站创建webservice,在其中我必须生成 UID
从 user
的 email
/ name
. 这个过程应该只在用户注册步骤中进行。就像这样,我们有自己独特的twitter id。我有几个问题想问:
这应该是客户的责任还是网络服务的责任?
我想应该是网络服务。
如果webservice负责,那么生成 UID
从 myname@example.com
.
一种解决办法是提取 myname
从电子邮件并将用户id附加到其最后一个。但对于 auto-generated user_id
(mysql),这不是一个解决方案。另外,使用uid的整个想法是从浏览器的url中隐藏用户id(整数),因此这个解决方案将再次公开用户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条答案
按热度按时间sqougxex1#
您可以使用php uniqid函数创建用户的唯一id,并将其保存在用户tabl的unique\u id列中。它将是唯一的,您可以使用下面的代码生成一些唯一id。