Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » Mobile Link サーバー管理 » Mobile Link サーバーテクノロジ » 同期の方法 » ユニークなプライマリキー

 

プライマリキープール

ユニークなプライマリキーの問題を解決する効果的な方法の 1 つは、データベースの各ユーザーに、必要に応じて使用できるプライマリキー値のプールを割り当てることです。たとえば、営業担当者ごとに 100 個の新しい ID 値を割り当てます。各営業担当者は、自分のプール内の値を、新しい顧客に自由に割り当てることができます。

 ♦ プライマリキープールの実装
  1. 統合データベースと各リモートデータベースに新しいテーブルを追加して、新しいプライマリキープールを格納します。統合データベースのユニークな値を格納するカラムとは別に、これらのテーブルにはユーザー名を格納するカラムが必要です。このユーザー名のカラムによって、値を割り当てる権限を持つ者を識別できます。

  2. 統合データベースで、ストアドプロシージャーを作成し、十分な数の新しい ID 値が各ユーザーに確実に割り当てられるようにします。新しいエントリを多数挿入する、または同期をあまり行わないリモートユーザーには、特に多く、新しい値を割り当てます。

  3. download_cursor スクリプトを作成して、各ユーザーに割り当てられた新しい値を選択し、それをリモートデータベースにダウンロードします。 タイムスタンプベースのダウンロードの実装を参照してください。

  4. リモートデータベースを使用するアプリケーションを変更し、ユーザーが新しいローを挿入するときに、プールに入っている値をアプリケーションが使用するようにします。アプリケーションは、その値をプールから削除して、値の再使用を防ぎます。

  5. upload_delete スクリプトを作成して、削除したキーをアップロードします。ユーザーがリモートデータベースの自分専用の値プールから削除した値と対応するローが、Mobile Link サーバーによって、統合データベースの値のプールから削除されます。

  6. end_upload スクリプトを作成し、値のプールを管理するストアドプロシージャーを呼び出します。これで、ユーザーのプールに対してさらに多くの値が追加され、削除済みの値がアップロード中に置き換わります。

 例