Ссылочная целостность данных в Visual FoxPro
« Назад При многотабличном представлении данных связь между таблицами нередко выполняется по специально вводимым полям. В нашем примере – это идентификаторы рассматриваемых сущностей – поставщиков, изделий и их видов. Так, табл. 14.11 и 14.12 очевидным образом связываются полем "ID вида изделия". Такая структура данных создает проблему обеспечения ссылочной целостности данных, для иллюстрации которой рассмотрим три ситуации. Попробуем, во-первых, удалить из табл. 14.11 первую запись. Если эта операции разрешена, то в табл. 14.12 окажутся две записи, ссылающиеся на неописанный в базе данных вид изделия "Диод". Избежать подобного можно двумя способами: 1. запретить удаление записи в табл. 14.11, если на нее имеется ссылка в табл. 14.12; 2. удалять вместе с записью в табл. 14.11 все записи табл. 14.12, ссылающиеся на удаляемую запись. Попытаемся, во-вторых, изменить значение поля "ID вида изделия" для вида "Диод". Очевидно, что для корректного осуществления этой процедуры, необходимо соответствующим образом изменить значения этого поля в записях 1 и 2 табл. 14.12, ссылающихся на корректируемую запись табл. 14.11. (Уникальность нового "ID вида изделия" также должна быть гарантирована.) И, в-третьих, добавим в табл. 14.12 новую запись. Чтобы эта операции не привела к нарушению ссылочной целостности, необходимо в поле "ID вида изделия" проставить существующее в табл. 14.11 значение. В VFP подобные проблемы для таблиц базы данных решаются в результате задания межтабличных связей и введения триггеров удаления, обновления и вставки. При этом для связанных таблиц VFP поддерживает автоматическое формирование названных триггеров. |