1

Я пытаюсь выяснить способ создания базы данных SQL Azure. Существует много информации о том, каким должен быть ваш первичный ключ (int versus guid), а также преимуществами/недостатками обоих подходов, поэтому я знаю о том, что там происходит война :)О ключах базы данных

Но я был мышление применять лучшее из обоих миров, добавив следующие три колонки моих таблиц:

  • InternalID
    • IDENTITY типа междунар
    • определен как кластерный индекс
    • используется в соединениях
    • значение
    • по умолчанию, генерируемый базой данных
    • уникальным в таблице только
    • используется только внутри
    • никогда не может изменить
  • ExternalId
    • Guid
    • значение по умолчанию, генерируемое клиентом (или доменом)
    • глобально уникальный
    • используется как внутри, так и снаружи.
    • никогда не может изменить
  • UrlTitle
    • строка
    • порожденных областью
    • уникальной в таблице только
    • удобного представления объекта используется в общественных местах URL,
    • может изменяться (но предпочтительно не изменяется)

Поступая таким образом он будет иметь производительность целочисленных ключей первичных благодаря InternalId, но все еще достаточно гибкой, из-за ExternalId.

Я не специалист по базам данных, далеко от него, поэтому я хотел бы услышать от вас, возможно ли это сделать или просто просто смешно?

ответ

2

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

+0

Спасибо, я тоже разработчик, поэтому я контролирую все. Мне просто интересно, является ли этот подход тем, что считается «принятым» дизайном. –

Смежные вопросы