Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание постоянных отношений

Отношения (Relation) могут быть временными и постоянными. Вся разница состоит во времени "жизни" и способа их создания.

Временные отношения создаются командой SET RELATION (имеющей много дополнительных параметров) и существуют только в текущем сеансе Visual FoxPro. Такого же результата можно добиться, введя команду SET RELATION без параметров.

Постоянные же отношения создаются в конструкторе базы данных и сохраняются после сеанса работы.

Для создания отношений между таблицами (а говоря проще, для того чтобы связать их) необходимо, чтобы таблицы были соответствующим образом проиндексированы. Также нужно соблюдать еще одно правило: таблица, с которой начинаем установку отношений, должна иметь индекс типа Primary или Сandidate, потому что никак не получится создать отношение, начав с регулярного индекса.

Откроем конструктор базы данных (рис. 15). На каждой из трех таблиц после списка полей изображены имена индексов.

Процесс создания отношений довольно прост - щелкаем мышью на имени | индекса и тащим его к индексу в другой таблице (в нашем случае к cities). Все, отношение установлено. Таким же образом свяжем таблицу cities] С таблицей streets.

Рис. 15. Установка отношений между таблицами

Таблица countries является родительской таблицей (parent table) по отно­шению к таблице cities, которая, в свою очередь, является дочерней (child table) по отношению к таблице countries. Но таблица cities является одновременно и родительской по отношению к таблице streets.

Таблицы связаны, связи отображаются линиями, заканчивающимися тремя штрихами. Эти штрихи показывают, что в данном случае имеет место связь "один-ко-многим" (one-to-many).

Что же будет происходить, когда мы начнем перемещаться по записям таблицы countries? При этом "на другой стороне" отношения, в таблице городов cities, будут отображаться только те города, которые относятся к стране, выбранной в таблице countries. А это и определяется значением индекса idcountry. Так как в любой стране имеется как минимум два города, в данном случае применяется именно отношение "один-ко-многим".

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

Для редактирования связей между таблицами используется диалоговое окно Edit Relationship (Редактирование отношений) (рис. 16). Для его вызова достаточно дважды щелкнуть на линии, отображающей отношение, или воспользоваться соответствующей командой контекстного меню.

Рис. 16. Диалоговое окно Edit Relationship

При изменении значения поля idcountry для какой-нибудь записи в таблице countries Лис просто не найдет эти записи.

Чтобы избежать подобной ситуации, необходимо каким-то образом сделать так, чтобы при изменении значений индексов в родительской таблице автоматически обновлялись соответствующие индексы в дочерних таблицах, необходимо обеспечить ссылочную целостность базы Данных

Для этой цели в Visual FoxPro имеется инструмент, называемый Referential Integrity Builder (Построитель ссылочной целостности).

Для вызова Referential Integrity Builder достаточно щелкнуть правой кнопкой мыши на линии, отображающей связь между таблицами, и выбрать команд контекстного меню Edit Referential Integrity (Редактировать ссылочную целостность).

После выбора данной команды открывается окно построителя (рис. 17 ).

<== предыдущая лекция | следующая лекция ==>
Составные индексы | Идентификаторы
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 310; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.