Таким образом, я видел несколько упоминаний о суррогатном ключе в последнее время, и я не действительно уверен, что это и как это отличается от первичного ключа.
Я всегда предполагал, что идентификатор был моим первичным ключом в таблице как это:
Users
ID, Guid
FirstName, Text
LastName, Text
SSN, Int
однако, Википедия определяет суррогатный ключ как "Суррогатный ключ в базе данных, уникальный идентификатор или для объекта в смоделированном мире или для объекта в базе данных. Суррогатный ключ не получен из данных приложения".
Согласно Википедии, похоже, что идентификатор является моим суррогатным ключом, и мой первичный ключ мог бы быть SSN+ID? Действительно ли это правильно? Это - плохой дизайн таблицы?
Предположение, что дизайн таблицы является звуковым, что-то вроде этого было бы плохо, для таблицы, где данные ничего не имели уникальным об этом?
LogEntry
ID, Guid
LogEntryID, Int [sql identity field +1 every time]
LogType, Int
Message, Text