Сценарий, который у меня есть, заключается в том, что несколько компьютеров с локальными экземплярами SQL Server 2008 будут генерировать данные с использованием таблиц с целочисленными полями идентификации.Эти данные будут иметь связанные записи, связанные с этими полями целочисленного идентификатора.Данные должны быть объединены с нескольких компьютеров в одну базу данных на центральном сервере с одинаковой структурой (чтобы один и тот же код отчетности мог работать с любой базой данных), при этом должным образом поддерживая связи между связанными записями.
Как(вымышленный) пример, скажем, все ПК записывают аспекты погоды.Каждые 10 минут в таблице WeatherInspection создается запись.Здесь есть поле идентификатора целочисленного идентификатора.В WeatherInspectionItems также создается ряд записей, содержащих температуру на нескольких различных датчиках температуры.Эти записи связаны с таблицей WeatherInspection полем ID.Это не реальный сценарий, но иллюстрирует принцип - родительская таблица с полем целочисленного идентификатора, дочерняя таблица связана с этим идентификатором.На практике существует гораздо больше связанных таблиц, каждая из которых имеет поле с внутренним идентификатором.
Затем мне нужно объединить WeatherInspection и WeatherInspectionItems со всех ПК в центральную базу данных SQL Server 2008.Поскольку каждый ПК имеет свои собственные поля идентификаторов, каждый ПК мог бы использовать те же идентификаторы в своей таблице WeatherInspection.
Во время объединения мне нужно иметь возможность назначить новое значение идентификатора для записей WeatherInspection, чтобы ониостаются уникальными в базе данных master, но для меня большая проблема заключается в том, что мне также нужно иметь возможность изменять значение в дочерних записях, чтобы они связывались с новым полем ID.
Я хочу иметь возможность:
- Продолжайте использовать идентификаторы int вместо переключения на GUIDS
- Поддерживать одинаковую структуру базы данных в обеих БД
- Хранить идентификаторы int в качестве единственного поля первичного ключа
Меня действительно интересует, существует ли какая-либо технология слияния в SQL Server или других связанных продуктах, которая может переназначать поля идентификаторов в родительской таблице и поддерживать связь с дочерними записями.
Я знаю, что яможет иметь составные первичные ключи локально с идентификатором компьютера или чем-то подобным, но из-за инструментов ORM мы можем бытьПойте, что нужно одно поле int ID, я стараюсь избегать составных ключей и идентификаторов GUID.
Я попытался выполнить поиск, но нигде не могу найти статью, в которой рассматривается обновление связанных дочерних записей новыми значениями родительского идентификатора..
Спасибо!