Первичные ключи и индексы
В каждой таблице БД может существовать первичный ключ - поле или набор полей, однозначно идентифицирующий запись. Значение первичного ключа в таблице БД должно быть уникальным, то есть в таблице не должно существовать двух или более записей с одинаковым значением первичного ключа.
Первичные ключи облегчают установление связи между таблицами. В таблице «Покупатель» таким ключом является одноименное поле. Установив связь по первичному ключу, мы можем выяснить, что, например, 10.02.1999 года со склада было отпущено 100 единиц товара «Сахар» покупателю «Геракл, ТОО», офис которого расположен по адресу: 107005, Москва, 2-я Бауманская ул., 12 (телефон для связи 273-00-14).
Поскольку первичный ключ должен быть уникальным, для него могут использоваться не все поля таблицы. В приведенном примере название покупателя вряд ли может быть уникальным, поэтому поле «Покупатель» не может использоваться в качестве первичного ключа. Значительно более редким является совпадение телефонов у двух разных покупателей, поэтому поле «Телефон» в большей степени подходит на роль первичного ключа. Если в таблице нет полей, значения в которых уникальны, для создания первичного ключа в нее обычно вводят дополнительное числовое поле, значениями которого СУБД может распоряжаться по своему усмотрению. Если, например, в таблицу «Покупатель» добавить поле «№№», то связанные таблицы будет выглядеть так:
Дата
| Товар
| Покупатель
| Отпущено (ед.)
| ||||
10.12.99 | Сахар | 1 | 100 | ||||
10.12.99 | Сахар | 1 | 100 | ||||
12.12.99 | Сахар | 2 | 2 000 | ||||
12.12.99 | Макароны | 2 | 300 | ||||
14.12.99 | Сахар | 1 | 200 | ||||
15.12.99 | Дрожжи | 3 | 100 |
И таблица:
№№ | Покупатель |
|