Индексы для нескольких полей

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

 

Но, возможно, вы хотите помешать включению в две записи одинаковых и имени, и фамилии. Такой запрет избавит вас от случайного ввода сведений об одном и том же человеке дважды.

 

 

Примечание

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

 

Для обеспечения уникальности комбинации полей необходимо создать составной индекс, в котором объединяется информация из нескольких полей. Далее описаны необходимые для этого действия. 1.  В Конструкторе выберите на ленте Работа с таблицами | Конструктор > Показать или скрыть > Индексы (Table Tools | Design > Show/Hide > Indexes).

На экране появится окно Индексы (Indexes) (рис. 4.6). С его помощью можно просмотреть уже созданные индексы и создать новые.

Рис. 4.6. В окне Индексы показаны все индексы, которые определены в таблице.

В нем приведен простой индекс для поля ID (создаваемого программой Access автоматически)

и составной индекс, который в данный момент создается

2.  Выберите имя для вашего индекса. Введите его в первую пустую строку в столбце Индекс (Index Name)

Имя индекса не важно — программа Access использует его для хранения индекса в БД, но вы не увидите его во время работы с таблицей. Обычно для этого используются имена одного или нескольких полей, которые индексируются (например, LastName+FirstName).

3.  Выберите первое поле в столбце Имя поля (Field Name) в той же строке (например, LastName).

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

 

4.  В нижней части окна установите значение свойства Уникальный индекс (Unique) равным Да. В этом случае создается индекс, запрещающий совпадения значений (в отличие от индекса, применяемого только для увеличения скорости поиска).

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

 

Примечание

Можно запретить пропущенные значения вместе с применением свойства Обязательное поле, как описывается в разд. "Запрет незаполненных полей" ранее в этой главе.

 

Пропустите свойство Ключевое поле (Primary), которое задает индекс первичного ключа.

5.  Перейдите на одну строку ниже. Оставьте поле Индекс пустым (это говорит программе Access о том, что это часть предыдущего индекса), но выберите другое поле в столбце Имя поля (например, FirstName).

Если вы хотите создать составной индекс из нескольких полей (больше двух), просто повторяйте этот шаг до тех пор, пока не вставите все нужные поля. На рис. 4.7 показано, как выглядит сформированный индекс. Теперь можно закрыть окно Индексы.

Рис. 4.7. Здесь представлен составной индекс, препятствующий включению в таблицу двух людей с одинаковыми именем и фамилией

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100