【发布时间】:2017-08-24 06:07:34
【问题描述】:
我有一个系统,我想为进入系统的每个用户生成唯一的用户 ID。如果用户更改设备,则会为同一用户开发一个新 ID。因此,在系统中,他们是两个不同的用户,但实际上,他们不是。如果我有一些用户而不是所有用户的电子邮件,我如何将这两个 Id 链接在一起?
【问题讨论】:
我有一个系统,我想为进入系统的每个用户生成唯一的用户 ID。如果用户更改设备,则会为同一用户开发一个新 ID。因此,在系统中,他们是两个不同的用户,但实际上,他们不是。如果我有一些用户而不是所有用户的电子邮件,我如何将这两个 Id 链接在一起?
【问题讨论】:
这个问题很难回答,因为不清楚你在问什么,但我会尝试:)
有一些变体:
您事先知道您的唯一用户标识符,即电子邮件。新用户应在注册时将其传递给系统
您事先知道您的唯一用户标识符,但新用户无需传递此信息即可完成注册
您事先并不知道这个唯一的用户标识符
第一种情况非常简单 - 您应该使用您的唯一用户 ID(电子邮件)而不是生成的唯一 ID。因此,您可以在注册过程中通过此唯一标识符匹配新用户和旧用户。例如,我尝试在注册期间链接我的社交帐户并收到该电子邮件已被使用的消息。
第二种情况比较困难 - 您可以在用户表中添加电子邮件字段并在其上添加索引。在这种情况下,您可以运行简单查询来查找非唯一用户。或者您可以维护单独的匹配表,看起来像(电子邮件,user_id)。例如它可以包含这样的行:
| email | user_id|
+----------------+--------+
|user@example.com| 1 |
|user@example.com| 2 |
|test@example.com| 3 |
| .............. | ...... |
当您获得有关唯一用户标识符(在我们的例子中是电子邮件)的信息时,您可以在此表中添加行。因此,使用此表,您可以通过用户唯一标识符(在我们的例子中为电子邮件)在不同的生成用户之间进行匹配
第三种情况比第一种和第二种更复杂:)您无法提前创建任何匹配表,因为您不知道用户唯一标识符。
【讨论】: