将多个ID链接到属于同一用户的一个ID

时间:2017-08-18 17:41:20

标签: database data-modeling

我有一个系统,我想为进入系统的每个用户生成唯一的用户ID。如果用户更改设备,则为该用户开发新的Id。因此,在系统中,它们是两个不同的用户,但实际上,它们不是。如果我有一些用户的电子邮件而不是所有用户,我如何将这两个ID连接在一起?

1 个答案:

答案 0 :(得分:0)

很难回答这个问题,因为你不清楚你在问什么,但我会尝试:)

有一些变种:

  1. 您事先知道您的唯一用户标识符,即电子邮件。新用户应在注册期间将其传递给系统

  2. 您事先知道您的唯一用户标识符,但新用户可以在不传递此信息的情况下完成注册

  3. 您事先并不知道此唯一用户标识

  4. 第一种情况非常简单 - 您应该使用唯一的用户ID(电子邮件)而不是生成的唯一ID。因此,您可以在注册过程中通过此唯一标识符匹配新用户和旧用户。例如,我尝试在注册期间链接我的社交帐户,并收到已经使用过此类电子邮件的消息。

    第二种情况比较困难 - 您可以在用户表中添加电子邮件字段并在其上添加索引。在这种情况下,您可以运行简单查询来查找非唯一用户。或者您可以维护单独的匹配表(email,user_id)。例如,它可以包含这样的行:

    |   email        | user_id|
    +----------------+--------+
    |user@example.com|   1    |  
    |user@example.com|   2    |
    |test@example.com|   3    |
    | .............. | ...... |
    

    在此表中,您可以在获取有关唯一用户标识符的信息时添加行(在我们的示例中为电子邮件)。因此,使用此表,您可以通过用户唯一标识符(在我们的案例中为电子邮件)匹配不同的生成用户

    第三种情况比第一种情况更复杂:)您无法提前创建任何匹配的表,因为您不知道用户唯一标识符。