facebook用户id (uid)是facebook应用程序的未来证明密钥吗?



Facebook uid是否总是唯一的?例如,如果用户永久地删除了他们的帐户,那么Facebook可能会为新用户重用他们的UID吗?或者甚至可以用它作为一些无生命的东西的ID,比如城市或本地企业的页面?我能否在Facebook应用中使用uid作为用户的主键,而不用担心将来会与其他东西关联?

我还没有找到任何保证它们将来不会被重用的文档。

这个问题或多或少问了同样的问题(Facebook应用程序数据库问题:存储我自己的用户ID还是只使用Facebook UID?)然而,答案并没有提供任何证据证明uid在未来将保持唯一。

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

如果你能在Facebook API文档中找到一个声明说这不会发生,用马克·扎克伯格的血签名也没关系。如果你使用一个有意义的键值,那么总是有一些的风险,键在未来可能会改变。

风险可能很小。"未来"可能比你的应用范围更长。但在未来的某个时候,Facebook肯定会决定他们想要收回已不活跃或已删除的用户ID,以便同名的其他人可以使用它。

这里有一些证明它可以发生的证据。

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

FB_USER_KEY_MAP
  my_pk_value IDENTITY,
  fb_pk_value,
  effective_date,
  expiry_date

这是唯一的方法绝对确保您的PK是唯一的,不仅因为它只出现在您的表中一次,而且因为它总是指向完全相同的人/帐户。

UID将永远是唯一的。

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

这可能是一个"它不是在任何地方都被记录,它在任何地方都被记录"的情况:p这是那些应该总是被暗示的事情之一;一个PK永远不会在不同的事情上使用两次,永远不会。句号。

当你使用别人管理的数据时,你很容易受到那些人搞砸的可能性的影响。

您会认为社会安全号码(SSN)对于个人来说是唯一的。但在过去的几十年里,社会保障局实际上不止一次分配了这些数字。

Facebook不太可能搞砸这件事。但这是可能发生的,由于人为错误甚至恶意。

最新更新