Основы современных компьютерных технологий


Организация постоянных межтабличных связей


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

Постоянные связи хранятся в словаре БД и автоматически устанавливаются при открытии таблиц. Приведем условия установления постоянных связей.

  1. Одна из связываемых таблиц является родительской, другая - дочерней.
  2. Для родительской таблицы индекс должен быть определен как первичный ключ (Primary) или ключ-кандидат (Candidate).
  3. Для дочерней таблицы индекс может быть не уникальным. По этому индексу дочерняя таблица будет связываться с родительской (внешний ключ).

Создадим постоянные связи между таблицами. Для этого войдем в Конструктор БД и убедимся в наличии (пли создадим) перечисленные ниже индексы (табл. 21.5).

После создания всех необходимых индексов в окне Конструктора БД (рис. 21.4) будут представлены все таблицы в виде списка из полей и индексов, разделенных ключевым словом Indexes (индексы). Если в таблице список нолей и индексов виден не полностью, сто можно прокрутить вниз пли вверх. На рис. 21.4 показаны установленные межтабличные связи.

Для установления постоянной связи между родительской и дочерней таблицей необходимо:

  • установить указатель мыши на первичный ключ родительской таблицы;
  • нажав левую кнопку мыши, переместить указатель на индекс дочерней таблицы, по которому устанавливается связь;
  • отпустить кнопку.

264

Таблица 21.5

Типы индексов БД Bdu

Таблица Имя тега Тип индекса Индексное выражение
T_ZAGR i_zagr Primary FIO+Predm+STR(Gruppa)
T_PREP i_fio Primary FIO
T_PREP i_dolgn Candidate Dolgn
T_PREP i_stag Candidate Stag
T_STAG i_stag Primary Stag
T_DOLGN i_dolgn Primary Dolgn
<


Начало  Назад  Вперед