Отрицательные первичные ключи

Там какие-либо последствия используют Отрицательные Первичные ключи для таблиц (Инкремент идентификационных данных-1, Семя Идентификационных данных-1 в SQL Server 2005)?

Причина этого, мы создаем новую базу данных для замены существующей. Существуют подобные таблицы между этими двумя базами данных, и мы хотели бы, чтобы "источник" информации был очевиден для наших приложений. Подход должен создать представления что таблицы объединений от обеих баз данных. Отрицательный PKs гарантирует, чтобы идентификационные данные не накладывались.

18
задан bjaxbjax 18 March 2010 в 20:41
поделиться

8 ответов

Как уже говорили другие, с базой данных все в порядке.

Но это будет проблемой для приложения .NET, использующего DataSet + DataAdapter, поскольку они используют отрицательные ключи в качестве временных ключей для новых записей.

Другие уровни доступа к данным могут использовать аналогичные приемы.

15
ответ дан 30 November 2019 в 07:38
поделиться

Не проблема.

Это немного неортодоксально, но в остальном - нормально.

По умолчанию, предлагаемый SQL Server, это просто значение по умолчанию, и его можно изменить в соответствии с потребностями. Похоже, у вас есть хороший компромисс.

2
ответ дан 30 November 2019 в 07:38
поделиться

Это совершенно нормально с точки зрения SQL Server. Настоящий вопрос будет в вашем приложении.

7
ответ дан 30 November 2019 в 07:38
поделиться

Если отрицательные числа что-то сломают, используйте четные числа для одного и нечетные числа для другого.

1
ответ дан 30 November 2019 в 07:38
поделиться

Другой вариант - добавить к устаревшим ключам префикс типа «OLD_». Единственная проблема в том, что ваше ключевое поле не будет числовым.

Если у вас должны быть цифровые клавиши, вы можете ввести столбец «устаревший» индикатор, а первичный ключ будет представлять собой комбинацию числового идентификатора и устаревшего индикатора (надеюсь, эта комбинация должна быть уникальной).

0
ответ дан 30 November 2019 в 07:38
поделиться

Вы захотите просмотреть старый код и поискать, где разработчики сортировали по первичному ключу как ленивый/небрежный способ сортировки по дате (потому что identity pk's обычно сильно или идеально коррелируют со временем).

5
ответ дан 30 November 2019 в 07:38
поделиться

Проблема только в том, что вы не сможете добавить третий источник данных таким образом!

4
ответ дан 30 November 2019 в 07:38
поделиться

Это не проблема. Просто убедитесь, что ваш столбец Identity имеет тип, допускающий отрицательные числа.

0
ответ дан 30 November 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: