0

如果您查看 facebook 的图形 API,似乎所有对象共享相同的 ID 空间,并且所有 Id 都是唯一的,即使它们位于不同的表中。

MySQL 中是否有处理此问题的功能?(如果没有,如何实施的高级想法?)

4

3 回答 3

3

您可能想检查一下UUID()。它返回一个全局唯一 ID,因此您的 ID 永远不会发生冲突。

要将其转换为整数格式,您可以

UNHEX(REPLACE(UUID(),'-',''))

用于存储在BINARY(16)列中。

(转换为整数的来源:Nicholas Sherlock在 MySQL 参考中的评论)

于 2012-07-28T01:32:31.560 回答
0

如果您有一个主数据库服务器,则可以创建一个名为 Object 的表,该表具有一个整数自增主键和一个对象类型列。每次创建对象时,首先在此 Object 表中插入一行,获取 id,然后使用该 id 将一行插入到将保存对象信息的任何表中。所以要创建一个事件:

INSERT INTO Object (object_type) VALUES ('Event')

获取最后一个插入 id,假设它是 12345。

INSERT INTO Event (id, name, location) VALUES (12345, 'Cookout', 'My back yard')
于 2012-07-28T01:36:05.560 回答
0

OR use a single sequence to drive the ID values.

于 2012-07-28T01:40:00.510 回答