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

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

 

プライマリキープール

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

プライマリキープールの実装方法の概要を次に示します。

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

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

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

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

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

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

 例