FacebookのグラフAPIを見ると、すべてのオブジェクトが同じIDスペースを共有しているように見え、異なるテーブルにある場合でもすべてのIDが一意です。
これを処理するMySQLの機能はありますか?(そうでない場合は、実装方法の高レベルのアイデア?)
あなたはチェックアウトしたいかもしれませんUUID()
。IDが衝突しないように、グローバルに一意のIDを返します。
整数形式に変換するには、次のことができます
UNHEX(REPLACE(UUID(),'-',''))
BINARY(16)
列 に格納するため。
(整数に変換するためのソース:MySQLリファレンスでのNicholas Sherlockのコメント)
マスターデータベースサーバーが1つしかない場合は、整数の自動インクリメント主キーとオブジェクトタイプ列を持つ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')
または、単一のシーケンスを使用してID値を駆動します。