1つのシステムAからシステムBにデータを転送する必要があります。システムAはユーザーIDをUUIDで格納し、システムBはそれらを整数として格納します。
MySQL selectステートメントを使用してシステムAからデータを取得して保存し、それをシステムBに転送しています。MySQLselectステートメントでUUIDを整数に変換する簡単な方法はありますか?
コメントで説明されているように、UUIDを単純に整数に変換して、一意であると期待することはできません。UUIDは128ビットですが、INT(10)
おそらく32ビットです。これは、96ビットを無視する必要があることを意味します。これは、非常に多くの潜在的な衝突に相当します(一意の32ビット値ごとに約78オクティリオンの異なるUUID)。
すべてが失われるわけではありません。32ビットで最大約40億のユーザーを表すことができ、おそらくそれで十分だからです。実際に行う必要があるのは、既存のUUIDを整数にマップすることだけです。これは、実際には非常に簡単です。
これを実現するために、UUID(主キーとして)と一意の整数(おそらく自動インクリメントフィールド)の両方を格納する変換テーブルを作成できます。これを使用して、システムAからシステムBに(およびその逆に)マップできます。このテーブルを2つのデータベースのいずれかに配置することも、別々に保持することもできます。個人的には、システムBに入れます。これは、userId
整数値が実際に意味をなす場所だからです。