3

我需要创建对象并使它们在网络上可用。与stackoverflow类似,我有类似的东西。

http://stackoverflow.com/users/78374

但是,在我的情况下,我创建的对象的 ID 必须是唯一的,所以我正在考虑一个 UUID,导致一个类似的 URL

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

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

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

4

4 回答 4

6

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

于 2009-09-29T19:57:34.893 回答
1

这没有问题。Hotmail 就是这样做的。

于 2009-09-29T19:55:39.297 回答
1

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

于 2009-09-29T19:57:35.143 回答
1

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

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

于 2009-09-29T20:00:25.513 回答