Facebook用户ID(UID)是Facebook Apps的未来验证密钥吗?

时间:2011-09-09 06:34:24

标签: facebook database-design

Facebook UID对于一个用户来说总是独一无二的吗?例如,如果用户永久删除了他们的帐户,Facebook可能会为新用户重用他们的UID吗?或者甚至可以将它用作城市或本地商业页面等无生命的ID?我是否可以将UID用作Facebook应用中用户的主键,而不必担心它们将来与其他内容相关联?

我未能找到任何保证他们将来不会再使用的文件。

这个问题或多或少地问同样的事情 (Facebook app database issue: Store my own User ID or just use Facebook UID?) 但是,答案并未提供任何证据证明UID在未来仍将是独一无二的。

3 个答案:

答案 0 :(得分:1)

UID始终是独一无二的。

通常的做法是将主键(PK)设置为auto-incrememnet,它被归类为“在此表中创建的行数”,并且不考虑已删除的行。因此,即使您添加3行然后删除它们,自动增量仍设置为4,这将是插入的下一行的ID。

这可能是“它没有在任何地方记录,它随处可见”的情况:P这是应该总是暗示的那些事情之一; PK永远不会被用于不同的东西两次。完全停止。

答案 1 :(得分:1)

答案取决于您对Facebook UID的意思。如果您正在谈论与用户帐户关联的无意义整数值,那么您可能没问题。如果你在谈论用户名,那么这是一个有意义的关键,我认为你需要小心。

如果你能在Facebook API文档中找到一个声明,说它不会发生,并且在马克扎克伯格的血液中签名,那也没关系。如果您使用有意义的密钥值,那么密钥可能会在将来发生某些风险。

风险可能很小。 “未来”可能比您的申请范围更长。但是在未来的某个时候,Facebook可能肯定会决定回收一个不活跃或被删除的用户ID,以便其他同名的人可以拥有它。

这可能会发生一些proof

如果您想要确定您的应用程序可以区分今年的Facebook.com/Harman和明年(或2015年等),那么您应该保留自己无意义的PK并将其映射到Facebook密钥有效日期范围,如下:

FB_USER_KEY_MAP
  my_pk_value IDENTITY,
  fb_pk_value,
  effective_date,
  expiry_date

这是绝对确保您的PK独一无二的唯一途径,不仅因为它只出现在您的表中一次,而且因为它始终指的是完全相同的人/帐户

答案 2 :(得分:0)

每当您使用其他人管理的数据时,您很容易受到这些人搞砸的可能性。

您会认为社会安全号码(SSN)对于个人而言是唯一的。但在几十年前,社会保障管理局实际上不止一次地分配这些数字。

Facebook不太可能搞砸这个。但它可能发生,因为人为错误甚至是恶意。