Идеи дизайна базы данных «ключ / идентификатор», суррогатный ключ, первичный ключ и т. Д.
Поэтому в последнее время я видел несколько упоминаний о суррогатном ключе, и я не совсем уверен, что это такое и чем он отличается от первичного ключа.
Я всегда предполагал, что 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