Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
16.03.2016
Размер:
20.6 Mб
Скачать

На профессиональном уровне. Как Access предотвращает дублирование записей

Для того чтобы функционировать корректно, система управления базами данных, такая как Access, должна уметь определять разницу между каждой и любой записью в вашей таблице. Другими словами, вы не можете вставить две записи с полностью идентичными данными. Чистоплюйство БД общеизвестно, они не терпят такого рода мусора.

Проблема устранения дубликатов не так проста, как кажется. Программа Access спроек­тирована в расчете на максимальную скорость обработки, и она не может позволить себе перепроверять вашу новую запись, сравнивая ее со всеми другими записями в таблице для выявления дубликата. Вместо этого она полагается на первичный ключ. До тех пор пока у каждой записи в таблице есть уникальный, никогда не повторяющийся первич­ный ключ, у вас. не будет двух идентичных записей. (В худшем случае, они могут быть почти идентичны, с одинаковыми данными во всех остальных полях, но с разными пер­вичными ключами. Это вполне приемлемо для программы Access.)

В таблице Employees (сотрудники) номер социального обеспечения (Social Security number) мог бы служить первичным ключом. Этот метод хорошо работает, поскольку, когда вы вставляете новую запись, Access может проверить наличие дублирования, про­бежав список этих номеров, что гораздо быстрее, чем просмотр целой таблицы.

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

К сожалению, как раз так и не следует делать — в конце концов, есть масса адресных книг с двумя Шонами- Смитами (Sean Smith).

Лучше всего вставить новую порцию данных. Вы можете пометить каждого человека в вашем списке контактов с помощью уникального ID-номера. Самое лучшее, что вы можете сделать, — дать возможность программе Access создать такой номер для вас (и быть уверен­ным в том, что ни у каких двух людей из списка не будет одинаковых номеров) и больше не думать об этом. В этом случае, если у вас есть два Шона Смита, у каждого из них будет свой ID. И даже если Феррис Вил (чертово колесо) Симпсон решит сменить имя, ID останется прежним.

Именно так действует программа Access, когда вы создаете таблицу в Режиме таблицы. Рассмотрим таблицуDolls, созданную вглаве 1. В ней есть поле, названноеКод(ID) и автоматически заполняемое Access. Вы не можете вставить в таблицу значение поляКодили изменить значение в имеющейся записи. Программа Access полностью контролирует это поле, гарантируя уникальный номер для каждой куклы-болванчика. Такой подход в большинстве

случаев — как раз то, что вам нужно, поэтому не пытайтесь изменить его или уда­лить поле Код.

Но есть одно исключение. Если вы создаете таблицу в Конструкторе, выбрав на ленте Создание Таблицы Конструктор таблиц (Create → Tables → Table Design), Access считает, что вы знаете, что делаете, и не создает для вас поле Код. Вы должны вставить поле Код (или что-то подобное).

Создание поля для вашего собственного первичного ключа

Если в вашей БД нет поля Код (возможно, вы создали ее, выбрав Создание Таблицы Конструктор таблиц), ваша задача — создать его и установить первичный ключ. Вот как это делается.

1. Создайте новое поле, вставив его имя в столбец Имя поля (Field Name).

Для автоматической генерации значений лучше всего подходит имя Код (ID). Некото­рые пользователи предпочитают более информативное имя (например, BobbleheadID, CustomerlD и т. д.), но это необязательно.

2. В столбце Тип данных (Data Type) выберите тип данных Счетчик (Currency).

Выбрав этот тип данных, вы можете быть уверены в том, что программа Access создаст уникальное значение ID для каждой вставляемой вами новой записи. Если этот подход вас не устраивает, можно выбрать что-то другое (например, текстовый тип данных или числовой). В этом случае вы отвечаете за ввод собственного уникального значения для каждой записи, что потребует больше работы, чем кажется на первый взгляд.

3. Щелкните поле правой кнопкой мыши и выберите команду Ключевое поле (Primary Key).

Этот выбор помечает поле как первичный ключ для вашей таблицы. Программа Access не допустит повторяющихся значений в этом поле.

Примечание

Если вы хотите включить в первичный ключ несколько полей, вам придется использовать не­сколько иной подход. Сначала щелкните кнопкой мыши отступ на странице рядом с именем поля, а затем переместите мышь с нажатой кнопкой, чтобы выделить несколько полей. Затем нажмите и удерживайте нажатой клавишу <Shift> и щелкните правой кнопкой выделенные по­ля. Теперь можно выбрать команду Ключевое поле (Primary Key).

Соседние файлы в папке Управление данными