Мне нужно односторонне синхронизировать внешние данные с CRM на регулярной основе (т.е. каждую ночь).
Это включает в себя создание новых записей, а также обновление существующих.
Это означает, что я должен отслеживать идентификаторы CRM-Entities, созданные моим процессом синхронизации.
Подчеркнутый текстМне уже удалось создать и обновить записи в CRM из строк таблиц базы данных, так что это не проблема.
В настоящее время мои сопоставленные таблицы имеют следующие столбцы
id
: первичный ключ таблицы, установленный при вставке новой строкиnew_myentityid
: первичный атрибут сопоставленного объекта, установленный после создания записи в процессе синхронизации.new_name
и т. д.: значения атрибутов записей
Однако я вижу способ кардинально упростить весь процесс:
Вместо того, чтобы иметь PrimaryKey (id
) в базе данных и отслеживать идентификатор CRM (new_myentityid
) в отдельном столбце, я мог бы также избавиться от id
-столбцов и сделать первичный ключ CRM-ID-Column (new_myentityid
) таблицы и установите его при вставке новых записей (newid()
), поэтому в основном замените id
на new_myentityid
с точки зрения базы данных. Затем я мог выполнить массовую рассылку через ExecuteMultipleRequest
в сочетании с UpsertRequest
.
Таким образом, я бы сохранил столбец в каждой сопоставленной таблице, а также логику для хранения идентификаторов CRM после их создания.
Вопрос
Будет ли это приемлемым или есть что-то, что должно заставить меня избегать этого?