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