Планирование базы данных
Таблица типов растений имеет только одно поле. Таблицы такого рода, как правило, считаются справочными, поскольку с их помощью ищутся значения для данных, связанных с другой таблицей. В нашем случае таблица типов стала справочной по отношению к таблице растений. Справочную таблицу можно оставить без изменений (сделав основное поле первичным ключом или добавив поле автонумерации). Выберем второй вариант и сделаем поле автонумерации первичным ключом. Теперь список таблиц выглядит так, как показано далее, причем каждая таблица содержит несколько полей (первичный ключ обозначается как ПК):
- растения – имя, латинское имя (ПК), заметки, фотография;
- каталоги – имя (ПК), улица, город, область, почтовый индекс, страна, специализация;
- типы – тип (ПК), описание.
Интересно, каким образом таблица растений "узнает" о том, какой тип к какому растению относится или в каком каталоге содержатся сведения о семенах моркови? Это возможно лишь при наличии связей. Взаимосвязь – это, как понятно из названия, связь между таблицами. Принцип взаимосвязи можно сформулировать с помощью такой фразы: "Каждый каталог содержит информацию о многих растениях" или такой: "Каждое растение обладает типом". Более подробно о связях рассказывается в главе 6, "Использование взаимосвязей".
Связанным между собой таблицам требуется два ключа: первичный и так называемый внешний ключ. Второй, внешний, ключ – это первичный ключ другой таблицы, добавленный в основную таблицу. Сказанное можно пояснить схемой, приведенной на рис. 4.5.
Рис. 4.5. Первичные и внешние ключи
Для иллюстрации метода работы взаимосвязанных таблиц следует добавить необходимые внешние ключи к созданным таблицам.
Ранее поле типов было перенесено из таблицы растений в новую таблицу. Теперь эти две таблицы нужно связать между собой. Для этого поле первичного ключа из таблицы типов необходимо разместить в таблице растений в качестве внешнего ключа (ВК):
- растения – имя, латинское имя (ПК), заметки, фотография, номер типа (ВК);
- типы – тип (ПК), описание.
Выполним аналогичные действия для таблиц растений и каталогов, и у нас появится возможность быстро находить каталог с информацией о нужных семенах. В данном случае добавим первичный ключ с таблицы каталогов – поле Имя – в таблицу растений в качестве внешнего ключа:
- растения – имя, латинское имя (ПК), заметки, фотография, номер типа (ВК), имя каталога (ВК);
- каталоги – имя (ПК), улица, город, область, почтовый индекс, страна, специализация.
Обратите внимание на тот факт, что полю внешних ключей не назначаются имена полей соответствующих первичных ключей. Объясняется это тем, что имена полей не должны совпадать. В таблице каталогов содержится поле Имя, а в таблице растений – поле ИмяКаталога; взаимодействие этих ключей автоматически обеспечивает Access.
Итак, на данный момент содержимое таблиц выглядит следующим образом:
- растения – имя, латинское имя (ПК), заметки, фотография, номер типа (ВК), имя каталога (ВК);
- типы – тип (ПК), описание;
- каталоги – имя (ПК), улица, город, область, почтовый индекс, страна, специализация.
Если с упорядочением данных вам не удалось разобраться, не расстраивайтесь, ведь даже профессионалы зачастую путаются в подобных вопросах. Именно по этой причине Access включает в себя анализатор таблиц – специальную утилиту, позволяющую корректно отсортировать данные. Подробная информация об этой утилите изложена в главе 6.