3

集中管理された postgres 9 データベースのいくつかのテーブルをミラーリングする分散クライアントをいくつか用意します。システムは、データの双方向同期として機能します。最悪の場合、クライアントは数時間から数日間オフラインになる可能性があります (現場でデータを収集するためのモバイル クライアントです)。

そのため、クライアントで挿入を行い、それらのグローバル ID を生成する必要があります。現在、そのための GUID フィールドがありますが、さりげなくhttp://docs.python.org/2/library/uuid.htmlを見ると、GUID を INT64 または BIGINT との間で変換できることがわかります。

したがって、クライアントでGUIDを生成し、それをBIGINTに変換して、データベースの主キーとして使用しても問題ないのでしょうか(GUIDや文字よりもINTで結合して検索する方が高速/安価であるため)

4

1 に答える 1

3

UUID は 128 ビットの長さであるため、GUID を 64 ビットの INT64 または BIGINT に押し込むのは悪い考えのように思えます。

また、データベースは GUID/UUID を文字列として保存するのではなく、128 ビットの数値として保存します。これは、かなり最適で簡単にインデックスを作成できる形式です。

于 2013-02-08T15:00:08.790 に答える