Когда безопасно использовать ObjectID в качестве ключей в классе отношений?

14

Я всегда избегал использования ObjectID при определении классов отношений. Насколько я понимаю, некоторые действия в базе геоданных будут сбрасывать идентификаторы объектов (например, импорт / экспорт). Однако я вижу, что многие люди используют их.

Я просто параноик, или есть случаи, когда безопасно использовать ObjectID при определении класса отношений?

Кирк Куйкендалл
источник

Ответы:

16

ObjectID поддерживаются только копированием / вставкой. Ни один инструмент импорта или экспорта не поддерживает их. Обычно не рекомендуется использовать ObjectID в классах отношений. Если все ваши данные действительно статичны, они должны работать нормально, но при импорте или экспорте данных всегда будет риск.

Лэнс Шипман
источник
4

По возможности я основываю отношения на других ключевых полях. Использование ObjectID в прошлом представляло для меня проблемы по точным причинам, упомянутым Лансом. В проектах, где данные, которые передаются взад и вперед между нашим SDE-сервером и клиентским сервером, использование ObjectID для связывания таблиц означает необходимость выполнения различных обработок таблиц для поддержания отношений.

Даже если они не планируют перемещать данные, я все равно предпочитаю использовать другое поле для ключей. Мой опыт показывает, что клиенты обычно не полностью понимают последствия своих действий для баз данных ГИС и часто ломают вещи, даже не осознавая этого. У меня были случаи, когда клиенты перемещали данные способами, которые изменяли ObjectID. Мои проекты обычно включают в себя некоторый пользовательский код для базы данных, и мне не нравится полагаться на понимание системы клиентами для предотвращения сбоев. Поэтому я предпочитаю использовать другие поля для первичных ключей и для отношений, поля, которыми я могу управлять.

Джефф Берри
источник