Шаг 23.
Работа с локальными БД в Delphi.
Определение ссылочной целостности между таблицами. Задание связи

    На этом шаге мы рассмотрим формирование связи между таблицами.

    Таблицы "Наименование" и "Наличие" находятся в отношении "один-ко-многим", то есть с одной записью в таблице NAIM может быть связано несколько записей по тому же наименованию, что и в таблице NALICH. В качестве поля связи выступает поле Naim, присутствующее в обеих таблицах.

Откроем таблицу NALICH (элемент меню File | Open | Table) и затем войдем в режим изменения структуры таблицы (Table | Restructure). В выпадающем списке Table Properties выберем элемент Refrential Integrity и нажмем кнопку Define....


Рис.1. Таблица NALICH

    В появившемся диалоговом окне (рисунок 2) в списке Fields показаны поля таблицы NALICH, а в списке Table - таблицы базы данных FIRMA.


Рис.2. Окно Referential Integrity


   Замечание. Если в списке Table таблицы не появились, то установите параметр Working Directory пункта меню File равным имени созданного алиаса (шаг 19).

   Выберем в списке Fields поле Naim и нажмем кнопку с изображением стрелки вправо. Название Naim будет записано в поле Child Fields (поле внешнего ключа дочерней таблицы).


Рис.3. Определение полей, по которым устанавливается связь

    Выберем в списке Table таблицу NAIM и нажмем кнопку с изображением стрелки влево. В поле Parents Key (ключ родительской таблицы) будут показаны поля из первичного ключа таблицы NAIM. В данном случае это поле Naim (рисунок 3).

   Переключатели Update rules определяют вид каскадных воздействий на таблицу NALICH при изменении значения поля связи в таблице NAIM или при удалении записи в таблице NAIM:

   Выберем Cascade и нажмем кнопку OK. Будет запрошено имя - в Paradox ссылочные целостности именуются. Введем имя, например NAIM_NALICH, и нажмем кнопку OK.


Рис.4. Задание имени ссылочной целостности

    Теперь имя созданной ссылочной целостности будет помещено в список.

    Созданную базу можно взять здесь.

   Запомним изменения в таблице (кнопка Save) и заново войдем в режим реструктуризации таблицы NALICH (Table | Restructure). В выпадающем списке Table properties выберем элемент Secondary Indexes (индексы таблицы, кроме индекса, построенного по определению первичного ключа). В списке индексов увидим, что появился новый индекс с именем Naim (по полю Naim).


Рис.5. Индекс Naim

    Этот индекс построен автоматически по неявному определению внешнего ключа при создании ссылочной целостности.

    На следующем шаге мы рассмотрим создание индексов.




Предыдущий шаг Содержание Следующий шаг