Facebook中的每个对象都可以拥有自己的唯一标识符。意思是,例如,如果FB组的ID为42,那么应用程序,组或任何其他对象不能具有相同的ID。这可以让Web应用程序将ID直接映射到图片的URL。
Facebook正在使用一个可能用信息编码的64位标识符。因此,我不认为你永远不会看到小一个id为42的信息可以在编码方式如下:
64 bits total
1st 16 bits = Shard ID (where is the object is stored)
2nd 16 bits = Type ID (app, group, person)
Remaining 32 bits = Local unique ID (incremental id for example)
使用一些逐位逻辑可以从标识中提取的类型。尽管如果您有ID到图片URL的直接1对1映射,它可能不是必需的。
我实际上并不知道FB的后端是如何构建的。以上只是一个示例实现。如果你有32位id的表,你仍然可以用一种编码类型转换为64位,并且不管对象类型如何,所有标识符都是唯一的。
这可能是矫枉过正的,特别是如果你有一个现有的生产结构。我只是试图解释如何做到这一点,以及Facebook如何做到这一点。