При выборе типа данных, используемых в поле, необходимо учитывать следующее.
1) Какие значения должны отображаться в поле? Например, нельзя хранить текст в поле, имеющем числовой, денежный, логический тип данных. Текст можно хранить в текстовом поле или в поле типа Memo. Числа можно записывать в текстовое поле, но в этом случае они не могут использоваться для вычислений.
2) Какие операции должны производиться со значениями в поле. Например, суммировать значения можно в числовых полях или в полях с денежным форматом, а значения в текстовых полях и полях объектов OLE нельзя.
3) Сколько места требуется для хранения значений в поле? Например, для хранения наименований организаций-поставщиков товаров необходим больший размер текстового поля, чем для хранения номеров телефонов. Для ввода чисел в пределах от 100 до 200 в числовое поле достаточно выбрать размер байт. Для пятизначных чисел этого будет явно недостаточно, поэтому потребуется установить размер длинное целое.
4) Нужна ли сортировка поля? Сортировать поля Memo, гиперссылки и объекты OLE невозможно.
5) Каким образом должны быть отсортированы значения в поле? Числа в текстовых полях сортируются как строки чисел (1, 10, 100, 2, 20, 200 и т.д.), а не как числовые значения. Для сортировки чисел как числовых значений используйте числовые поля или поля, имеющие денежный формат. Также многие форматы дат невозможно отсортировать надлежащим образом, если они были введены в текстовое поле. Для обеспечения сортировки используйте поле типа «Дата/время».
Прежде, чем строить дом, на бумаге создается его проект, во всех подробностях описывающий будущее строение. Для того, чтобы создать реальную, полезную базу данных, тоже нужен проект, отражающий ее структуру и внешний вид.
Пусть перед нами стоит задача построить базу данных для телефонной компании. Нам нужно учесть всех ее абонентов, все их телефонные переговоры (как междугородные, так и внутри своего города), организовать подсчет стоимости разговоров и выставление счетов абонентам. Отметим, что учет стоимости междугородных разговоров ведется поминутно, а внутри города – нет.
Сначала определим, какие данные, а значит, какие таблицы нам потребуются. Во-первых, данные об абонентах (занесем их в таблицу «Абоненты»). Опишем структуру этой таблицы с указанием типа данных для каждого поля.
Название поля
Тип данных
Примечание
ФамилияИО
текстовый
№телефона
текстовый
Это поле объявим ключевым, т.к. номера телефонов в пределах города повторяться не могут.
ДомашнийАдрес
текстовый
Нужен для рассылки счетов за услуги, в учебном примере можно не заполнять
Льгота
числовой
с плавающей точкой
Число от 0 до 1 показывает, какую часть от тарифа абонент не оплачивает. Например, значение 0,3 в этом поле означает 30% скидки.
Для расчета стоимости междугородных переговоров нам потребуется информация о цене одной минуты разговора со всеми городами, с которыми имеется автоматическая телефонная связь. Назовем ее «Тарифы». Структура ее проста.
Название поля
Тип данных
Примечание
Город
текстовый
Это поле объявим ключевым, т.к. города мы различаем именно по названию. Для городов с одинаковым названием делаются пометки, например (Калининград и КалининградМоскОбл).
Цена1мин
денежный
И, наконец, нам нужна таблица для хранения информации о телефонных разговорах: кто, когда, сколько и с каким городом разговаривал (назовем эту таблицу – «Разговоры»). Ее структура:
Название поля
Тип данных
Примечание
№ телефона
текстовый
Здесь это поле быть ключевым уже не может, т.к. с одного телефона может быть проведено много разговоров.
Дата
дата/время
Полный формат даты.
Продолжительность
числовой целый
Показывает округленное число минут, т.к. учет поминутный.
Город
мастер подстановок
Используем поле «Город» из таблицы «Тарифы» для избежания ошибок при вводе данных. Для внутригородских разговоров это поле оставляем пустым.
ПорядковыйНомер
счетчик
Поскольку ни одно из полей не может быть объявлено ключевым, добавляем еще одно поле – оно и будет ключевым. С помощью типа данных Счетчик нумерация будет вестись автоматически.