为唯一性和URL引用创建ID

时间:2009-09-29 19:52:12

标签: url uuid

我需要创建对象并在Web上提供它们。与stackoverflow类似,我有类似的东西。

http://stackoverflow.com/users/78374

但是,在我的情况下,我创建的对象的ID必须是唯一的,所以我在想一个UUID,导致像

这样的URL
http://example.com/users/{8e931066-7d87-4f2b-a3b5-608c4c9a9083}

因为稍后我将不得不将不同的数据库合并在一起,我不想让合并问题。

这是一种公认​​的做法吗?有哪些替代方案?

4 个答案:

答案 0 :(得分:6)

如果只是合并数据库的问题,给每个数据库一个唯一的标识符,然后将其与自动增量PK相结合,将为您可以使用的每个对象提供唯一的ID,而不用担心合并问题。

答案 1 :(得分:1)

没有问题。 Hotmail做到了。

答案 2 :(得分:1)

如果合并必须100%无缝,那么UUID可能是您最好的选择。如果您希望生成更加人性化的URL,您可以考虑使用用户可以定义的唯一“帐户名”。如果合并数据库,这可能会产生冲突,但可以克服它们。

答案 3 :(得分:1)

我同意这是一种可接受的做法,因为它在多个数据库和应用程序上使用时保持用户ID唯一。

我在缓存应用程序块中使用相同的做法。缓存项目时,缓存应用程序块会生成GUID,并且应用程序使用该GUID从缓存中检索项目。