Идеи дизайна базы данных «ключ / идентификатор», суррогатный ключ, первичный ключ и т. Д.

Поэтому в последнее время я видел несколько упоминаний о суррогатном ключе, и я не совсем уверен, что это такое и чем он отличается от первичного ключа.

Я всегда предполагал, что ID - это мой первичный ключ в такой таблице:

Users
    ID, Guid
    FirstName, Text
    LastName, Text
    SSN, Int

однако википедия определяет суррогатный ключ как «суррогатный ключ в базе данных - это уникальный идентификатор либо объекта в моделируемом мире, либо объекта в базе данных.Суррогатный ключ не получен из данных приложения«.

Согласно Википедии, похоже, что ID - это мой суррогатный ключ, а мой первичный ключ может быть SSN + ID? Это правильно? Это плохой дизайн стола?

Если предположить, что дизайн таблицы является правильным, будет ли что-то подобное плохим для таблицы, в которой данные не имеют ничего уникального?

LogEntry
    ID, Guid
    LogEntryID, Int [sql identity field +1 every time]
    LogType, Int
    Message, Text

Ответы на вопрос(7)

Ваш ответ на вопрос