КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Как 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 считает, что вы знаете, что делаете, и не создает для вас поле Код.Вы должны вставить поле Код (или что-то подобное).
|