リレーションシップクラスのキーとしてObjectIDを使用するのは安全ですか?


14

リレーションシップクラスを定義するときにObjectIDを使用することは常に避けてきました。ジオデータベースでの一部のアクションがobjectIDを再設定すること(インポート/エクスポートなど)を理解しています。しかし、多くの人がそれらを使用しているのを見ています。

私は単に妄想しているだけですか、またはリレーションシップクラスを定義するときにObjectIDを使用しても安全な場合がありますか?

回答:


16

ObjectIDは、コピー/貼り付けによってのみ維持されます。それらを維持するインポートまたはエクスポートツールはありません。通常、リレーションシップクラスでObjectIDを使用することはお勧めしません。すべてのデータが本当に静的であれば正常に機能しますが、データをインポートまたはエクスポートする際には常にリスクがあります。


4

可能な限り、他の重要なフィールドに関係を置きます。ObjectIDの使用は、Lanceが述べた正確な理由により、過去に私に問題を提示しました。SDEサーバーとクライアントサーバー間でデータをやり取りするプロジェクトでは、テーブルを関連付けるためにObjectIDを使用すると、関係を維持するためにテーブルでさまざまな処理を実行する必要があります。

データを移動する計画がない場合でも、キーに別のフィールドを使用することを好みます。私の経験では、クライアントは通常、GISデータベースに対するアクションの影響を完全に理解しておらず、多くの場合、気付かないうちに物事を壊します。クライアントがObjectIDを変更する方法でデータを移動する場合があります。私のプロジェクトは通常、データベースに合わせていくつかのカスタムコードを使用しますが、クライアントがシステムを理解して失敗を防ぐのは好きではありません。そのため、私は主キーとリレーションシップ、つまり制御可能なフィールドに他のフィールドを使用することを好みます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.