任何想法在核心数据字段中存储Twitter的推文ID(以及其他一般的Twitter数据项ID)的最佳方法是什么?这是本地缓存推文(和其他Twitter数据),并将用作主要的唯一ID,以将本地数据与服务器端的数据链接起来。也就是说,API返回的任何新ID值都将在本地创建记录,而如果本地数据存储中存在现有ID,则其余数据将从Twitter API返回的任何内容进行更新。所以在这个领域会有很多提取。
这适用于Mac OS X / iOS的Core Data库,使用的底层持久存储是SQLite。
您可能已经知道,目前Twitter defines message IDs as 64-bit unsigned integers。基于此,我可以想到这些选项在本地存储Twitter ID:
选项(1)有两个我可以预见的危险:
选项(2)的效率可能较低,因为此字段经常用于提取。
自SQLite 3 does not have a native variable-length number type以来,选项(3)可能不比选项(2)更有效。
理想的选择可能是将它存储为128位无符号整数,这使它们像UUID一样唯一,并且不会像字符串那么大。但不幸的是,SQLite中没有128位无符号整数类型,并且当使用该字段作为提取键时,底层持久存储中本身不支持的任何内容都可能导致问题。
提前致谢。
答案 0 :(得分:3)
不会有从64位到128位的转换(至少没有像地址空间这样的任何理由),即使它已经签名,它仍会留下63位,大约9,000,000,000,000,000,000鸣叫。 Twitter每天获得2亿条推文。即使他们每天发布一万亿条推文,也需要900万天才能完成。所以在这方面使用64位肯定是安全的。