* Я новичок в этом, я мог бы (вероятно, будет?) Будет говорить некоторые jibberish сейчас и потом, не стесняйтесь исправлять меня;)Объединение двух таблиц, дублированные ключи
Я играл с различные стратегии первичного ключа/индекса и задавались вопросом о следующем. Во многих случаях выбор для GUID в качестве первичного ключа обеспечивает запись с уникальной идентификацией в любой базе данных.
В настоящее время существуют некоторые проблемы с производительностью с использованием GUID в качестве первичного ключа (и поведение по умолчанию использования его в качестве кластерного индекса). Существует несколько альтернатив, например, использование NEWSEQUENTIALID() или добавление дополнительного столбца IDENTITY для обеспечения последовательного кластеризованного индекса.
Еще один человек удаляет GUID в первичных ключах (и индексах) вместе, предоставляя столбец уникальной идентификации по всему миру, внешний идентификатор/rowid. Это оставляет вас с меньшими таблицами. Конечно, есть 16-байтовый штраф за дополнительный столбец, но это быстро уменьшается в таблицах с несколькими FK. Больше вещей на страницах, приятные последовательные идентификаторы, меньшее пространство индекса, так что выиграть победу выиграть.
Этот подход, однако, оставляет нам неприятный недостаток: когда вы хотите объединить 2 таблицы, вы застреваете с дублирующимися ключами. Теперь я не сторонник этого подхода, я просто изучаю и сравниваю различные стратегии, чтобы сделать меня более разбирающимся в этой части дизайна базы данных.
Вопрос в следующем: как мы можем использовать уникальность GUID в этой ситуации для решения проблемы дублирования ключа? Следует ли отключать все ограничения таблицы и генерировать идентификаторы, поскольку таблица объединяется? Следует ли полностью отказаться от этого подхода?
Спасибо за этот полезный пост, всегда приятно получить больше информации от других :) – fuaaark