ユニークなプライマリキーの問題を解決する効果的な方法の 1 つは、データベースの各ユーザーに、必要に応じて使用できるプライマリキー値のプールを割り当てることです。たとえば、営業担当者ごとに 100 個の新しい ID 値を割り当てます。各営業担当者は、自分のプール内の値を、新しい顧客に自由に割り当てることができます。
統合データベースと各リモートデータベースに新しいテーブルを追加して、新しいプライマリキープールを格納します。統合データベースのユニークな値を格納するカラムとは別に、これらのテーブルにはユーザー名を格納するカラムが必要です。このユーザー名のカラムによって、値を割り当てる権限を持つ者を識別できます。
統合データベースで、ストアドプロシージャーを作成し、十分な数の新しい ID 値が各ユーザーに確実に割り当てられるようにします。新しいエントリを多数挿入する、または同期をあまり行わないリモートユーザーには、特に多く、新しい値を割り当てます。
download_cursor スクリプトを作成して、各ユーザーに割り当てられた新しい値を選択し、それをリモートデータベースにダウンロードします。 タイムスタンプベースのダウンロードの実装を参照してください。
リモートデータベースを使用するアプリケーションを変更し、ユーザーが新しいローを挿入するときに、プールに入っている値をアプリケーションが使用するようにします。アプリケーションは、その値をプールから削除して、値の再使用を防ぎます。
upload_delete スクリプトを作成して、削除したキーをアップロードします。ユーザーがリモートデータベースの自分専用の値プールから削除した値と対応するローが、Mobile Link サーバーによって、統合データベースの値のプールから削除されます。
end_upload スクリプトを作成し、値のプールを管理するストアドプロシージャーを呼び出します。これで、ユーザーのプールに対してさらに多くの値が追加され、削除済みの値がアップロード中に置き換わります。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |