答案 0 :(得分:2)
从广义上讲,有两种方法。
您使用顺序值。这些可以分为组,交错,等等。它们是最有效的方法,但需要协作和协调。
您使用随机值(包括UID)。这些更简单但需要更多空间。从“生日碰撞”我们知道,如果你需要存储N个值,那么必须从(大于)N * N - http://en.wikipedia.org/wiki/Birthday_problem的范围中选择一个随机密钥。向后工作,如果用作随机密钥,64位整数可以容纳大约32位数据 - 这大约是40亿个值。但这是50%碰撞概率。你想要一个低得多的概率,所以一个实际的限制是大约1000万条目。
因此,简单来说,如果你有一个64位密钥,随机方法将适用于大约1000万个条目,顺序方法可以用于更多。在任何一种情况下,这可能超出你的需要。
如果你有一个32位密钥,那么随机方法适用于大约一千个值(顺序方法大约为40亿,如上所述)。
很明显,如果你有一个文本值,那么你需要相应地修改它,但是UUID被设计成具有“足够”的值http://en.wikipedia.org/wiki/Universally_unique_identifier
通常,数据库将提供顺序ID,这就是您所需要的。如果没有,64位随机方法通常是最简单的,值得额外的空间。