Дизайнерские идеи “ключа/ИДЕНТИФИКАТОРА” базы данных, Суррогатный ключ, Первичный ключ, и т.д.

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

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

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
6
задан marc_s 22 December 2009 в 19:47
поделиться