Мощность систем управления реляционными базами данных, таких как Visual FoxPro происходит из их возможности быстро находить и приносить объединенную информацию, храняющуюся в разных таблицах. Для максимально эффективной работы Visual FoxPro требуется, чтобы каждая таблица в вашей базе данных включала в себя поле или набор полей, что могло бы уникально идентифицировать каждую индивидуальную запись, хрнаящуюся в таблице. Чаще всего это уникальный идентификационный номер, идентификатор работника или серийный номер. В терминологии баз данных эта информация называется первичным ключом таблицы. Visual FoxPro использует первичные ключи для быстрой ассоцииции данных из множества таблиц и совместно выдачи их вам для работы.
Если вы уже имеете уникальный идентификатор для таблицы, такой как набор номеров разрабатываемых вами продуктов, для идентификации предметов в складе, вы можете использовать этот идентификатор в качестве первичного ключа таблицы. Но убедитесь, что значения в этом поле будут всегда разными для каждой записи — Visual FoxPro не позволяет иметь дубликаты значений в поле первичного ключа. Например, могут легко встретиться два человека с одним и тем же именем в одной и той же таблице.
Когда вы выбираете поля для первичного ключа, держите в уме следующие правила:
-
Visual FoxPro не позволяет дублирующих или null значений в первичном поле таблицы. По этой причине, вы не должны в качестве первичного ключа выбирать поля, которые могут содержать такие значения.
-
Вы можете использовать значение в поле первичного ключа для поиска записей, поэтому оно не должно быть слишком длинным. Вы можете пожелать использовать определенное число букв или цифр, или чтобы значение находилось в определенном диапазоне величин.
-
Размер первичного ключа имеет воздействие на скорость операции в вашей базе данных. Когда вы создаете поля первичного ключа, используйте наименьший размер, который сможет разместить значения, которые вам нужно хранить в таком поле.
Пример
Первичный ключ таблицы Tasmanian Traders Products содержит идентификационные номера продукта -ID. Поскольку каждый номер продукт идентифицирует различные продукты, вам нежелательно иметь два продукта и одним и тем же номером.

В некоторых случаях вы можете пожелать использовать два или более полей, которые совместно предоставят первичный ключ таблицы. Например, Таблица Order_Line_Items в базе данных Tasmanian Traders использует два поля в качестве ее первичного ключа: Order_id и Product_id. Для получения более подробной информации, смотрите Идентификация отношений.