Kapan aman menggunakan ObjectIDs sebagai kunci di kelas hubungan?

14

Saya selalu menghindari penggunaan ObjectIDs ketika mendefinisikan kelas hubungan. Ini adalah pemahaman saya bahwa beberapa tindakan pada geodatabase akan mengatur ulang objectIDs (seperti impor / ekspor). Namun saya melihat banyak orang menggunakannya.

Apakah saya hanya menjadi paranoid, atau adakah kasus yang aman menggunakan ObjectID saat mendefinisikan kelas hubungan?

Kirk Kuykendall
sumber

Jawaban:

16

ObjectIDs hanya dikelola oleh Salin / Tempel. Tidak ada alat impor atau ekspor yang menggunakannya. Biasanya tidak disarankan untuk ObjectIDs pengguna di kelas hubungan. Jika semua data Anda benar-benar statis, itu akan berfungsi dengan baik, tetapi akan selalu ada risiko saat Anda mengimpor atau mengekspor data.

Lance Shipman
sumber
4

Kapan pun memungkinkan saya mendasarkan hubungan pada bidang-bidang utama lainnya. Menggunakan ObjectID telah menghadirkan masalah bagi saya di masa lalu untuk alasan yang tepat yang disebutkan oleh Lance. Dalam proyek-proyek di mana data yang ditransfer bolak-balik antara server SDE kami dan server klien, menggunakan ObjectID untuk tabel terkait berarti harus melakukan berbagai intrik pada tabel untuk menjaga hubungan.

Bahkan jika mereka tidak berencana untuk memindahkan data, saya masih lebih suka menggunakan bidang yang berbeda untuk kunci. Pengalaman saya adalah bahwa klien biasanya tidak sepenuhnya memahami implikasi dari tindakan mereka pada basis data SIG dan sering memecahkan banyak hal tanpa menyadarinya. Saya memiliki kasus di mana klien memindahkan data dengan cara yang mengubah ObjectID. Proyek-proyek saya biasanya melibatkan beberapa kode khusus untuk digunakan bersama dengan basis data dan saya tidak suka mengandalkan pemahaman klien tentang sistem untuk mencegah kegagalan. Jadi, saya lebih suka menggunakan bidang lain untuk kunci utama dan untuk hubungan, bidang yang bisa saya kontrol.

Jeff Berry
sumber