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

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


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

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

  • Одна из связываемых таблиц является родительской, другая - дочерней.
  • Для родительской таблицы индекс должен быть определен как первичный ключ (Primary) или ключ-кандидат (Candidate).
  • Для дочерней таблицы индекс может быть не уникальным. По этому индексу дочерняя таблица будет связываться с родительской (внешний ключ).
  • Создадим постоянные связи между таблицами. Для этого войдем в Конструктор БД и убедимся в наличии (пли создадим) перечисленные ниже индексы (табл. 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
    <
    /p> На экране появится диалоговое окно Edit Relationship (правка отношений) содержащее имена связываемых таблиц с раскрывающимися списками индексов В списках уже выбраны индексы, по которым должна осуществляться связь Здесь же указывается гнп отношений между таблицами "один к одному" или "один ко многим " Для сохранения отношения нажмем ОК, а при отказе - Cancel (отмена)

    Для удаления межтабличнои связи требуется выполнить следующее

  • навести указатель мыши на линию связи таблиц


  • нажать правую кнопку мыши, что приведет к утолщению линии и появлению всплывающего меню,


  • выполнить команду Remove Relationship (удалить отношение) всплывающего меню


  • В результате выделенная связь будет удалена Напомним, что установленные постоянные отношения (связи) между таблицами используются прежде всего для обеспечения ссылочной целостности (непротиворечивости) БД при обновлении ее содержимого Прежде чем усыпавливать правила ссылочной целостности рекомендуется ввести данные в таблицы

    Рис 21 4 Межтабличные связи БД Bdu

    265

    264 :: 265 :: Содержание


    Содержание раздела