Дом Базы данных В чем разница между составным ключом, первичным ключом и внешним ключом?

В чем разница между составным ключом, первичным ключом и внешним ключом?

Anonim

Q:

В чем разница между составным ключом, первичным ключом и внешним ключом?

A:

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

Внешний ключ, с другой стороны, является ключом в некоторой таблице, который уникально идентифицирует строки в другой таблице - или, другими словами, ключ, который отслеживает первичный ключ в другой таблице.

Примером может служить список домов на рынке недвижимости. В хорошо упорядоченной базе данных должен быть первичный ключ, который однозначно идентифицирует каждую запись. Как это работает, может иметь отношение к сложности базы данных.

В некоторых случаях дома могут быть однозначно идентифицированы только по номеру ипотеки - все остальные данные (города, улицы, номера домов) не уникальны для каждой записи. Номер ипотеки будет первичным ключом. Предположим, однако, что технология листинга риэлтора MLS присваивает свои собственные уникальные номера записям в таблице. Затем будет два ключа, которые разработчики могут определить как «ключи-кандидаты»: номер ипотеки и номер MLS. Один из них будет квалифицирован как «первичный ключ», что некоторые считают произвольным образом.

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

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

В чем разница между составным ключом, первичным ключом и внешним ключом?