Учебное пособие: Построение модели DFD и реализация в СУБД Visual FoxPro
Таблица Сотрудники (Employees)
Наименование поля | Тип данных | Ограничения |
Табельный номер сотрудника (number_emp) | Целое число | Первичный ключ |
ФИО (FIO) | Строка (30) | NOT NULL |
Должность (Jobtitle) | Строка (20) | NOT NULL |
Служебный телефон (telephone) | Строка (10) |
Реализация спроектированной базы данных при помощи СУБД VisualFoxPro
Создадим проект приложения баз данных. Для чего выберем в главном меню File – New, затем выберем Project и укажем NewFile – введём имя проекта Auditoriums и сохраним файл проекта (*.PJT). Далее откроется окно ProjectManager (диспетчер проектов) в котором перейдём на вкладку Data (Данные) и выберем пункт FreeTables(Свободные таблицы) и нажмём кнопку New. Появится окно, в котором выберем NewTable (Новая таблица) и сохраним таблицу как Auditoriums.dbf. После этого на экране появится диалоговое окно TableDesigner(Конструктор таблиц) в котором введём названия всех полей таблицы Аудитории (Auditoriums), укажем их типы данных и ограничения.
Рис. 2.15.5. Построение таблицы Аудитории (Auditoriums)
Аналогично создадим две другие таблицы Buildings.dbfи Employees.dbf.
Теперь создадим базу данных и добавим в неё уже созданные свободные таблицы. В окне Диспетчера проектов на вкладке Data выберем пункт Databases и нажмём кнопку New. Появится окно, в котором выберем NewDatabase (Новая база данных) и сохраним базу данных как Auditoriums.dbc. В появившемся окне DatabaseDesigner (Построитель базы данных) выберем из контекстного меню Add Table… (Добавить таблицу)
Рис. 2.15.6. Добавление таблицы в БД
В появившемся диалоговом окне открытия файла выберем сразу все три созданные таблицы и нажмём ОК.
Определим индексы для таблиц. Для этого в окне Диспетчера проектов на вкладке Data выберем пункт Databases, затем выберем созданную базу данных Auditoriums, в которой выберем пункт Tables (Таблицы). Появится список из трёх добавленных в базу данных таблиц, в котором выберем таблицу Auditoriums и нажмём кнопку Modify (Изменить). В появившемся окне конструктора таблиц перейдём на вкладку Indexes (Индексы). Создадим индекс первичного ключа таблицы. В поле Name введём имя индекса PK_auditor, а из раскрывающегося списка Type (Тип) выберем тип индекса Primary (Первичный), затем нажмём кнопку справа от поля Expression (Выражение) и введём значение индексного выражения в окне построителя выражений «ALLTRIM(name_build+STR(number_aud))», что означает конкатенацию двух строковых значений: значения поля name_build, имеющего стоковой тип и строкового представления числа, взятого из поля number_aud. Преобразование числа в строку осуществляется при помощи функции STR. Функция ALLTRIM убирает из выражения начальные и конечные значения. Так как совокупность значений этих строк должна быть уникальной, то при вводе данных в таблицу будет проверятся уникальность значения этого индекса, то есть совокупности значений двух полей, хотя по отдельности в этих полях могут присутствовать одинаковые значения.
Теперь создадим два регулярных индекса для определения внешних ключей. Первый FK_buildin, тип – Regular, выражение – «name_build» и второй FK_employe, тип – Regular, выражение – «number_emp».
Аналогично определим первичные ключи при помощи индекса Primary для двух других таблиц, назовём их PK_buildin и PK_employe.
Создадим отношения между таблицами. Для этого в окне конструктора базы данных щёлкаем мышью на имени индекса PK_buildin таблицы Buildings к индексу FK_buildin таблицы Auditoriums.
Рис. 2.15.7. Схема отношений базы данных
Создание форм
Создадим три формы по одной для каждой таблицы при помощи мастера форм. Для создания формы нужно в окне Диспетчера проектов перейти на вкладку Documents, где выбрать пункт Form и нажать кнопку New. Выберем FormWizard, затем выберем мастера создания формы с одной таблицы FormWizard. На первом шаге необходимо выбрать таблицу и поля, которые будут применяться в форме. Укажем таблицу AUDITORIUMS базы данных AUDITORIUMS (не свободную таблицу, потому, что мы её уже добавили в базу данных) и выберем все поля, переместив их в список Selectedfields (Выбранные поля).
Рис. 2.15.8. Создание формы при помощи мастера форм
На втором шаге выберем стиль формы.
На третьем шаге укажем поля, по которым будет происходить упорядочение записи и порядок сортировки записей. Выберем упорядочение по значению поля Название корпуса (name_build), для чего переместим его в список Selectedfields (Выбранные поля). Укажем сортировку по возрастанию (Ascending).
На четвёртом шаге введём заголовок для формы в поле Typeatitleforyourform, введём Аудитории. Выберем SaveandmodifyitintheFormdesigner (Сохранить и изменить форму в Конструкторе форм).
Форма откроется в окне конструктора форм, в котором изменим надписи, для чего выделим нужную надпись и в окне свойств Properties - auditoriums.scx изменим свойство Caption. Сохраним изменения, выбрав File – Save.
Рис. 2.15.9. Форма для таблицы «Аудитории»
Аналогично создадим формы для двух других таблиц.
Создадим форму для двух связанных таблиц Аудитории (Auditoriums) и Корпуса (Buildings)(Рис. 2.15.10.). Для этого выберем мастера создания формы, использующего связанные таблицы One-toFormWizard.
На первом шаге необходимо выбрать поля из родительской таблицы, которые будут применяться в форме. Выберем таблицу Buildings базы данных AUDITORIUMS и выберем из этой таблицы поля Название корпуса (Name_building) и Адрес (Address), переместив их в список Selectedfields (Выбранные поля).
На втором шаге выберем поля из дочерней таблицы. Здесь мы выберем таблицу Auditoriums и выберем из этой таблицы поля Номер аудитории (Number_aud), Число посадочных мест (Number_pla) и Тип (type_).
На третьем шаге указывается связь таблиц. Оставим связку по полю Название корпуса (Name_build).