php_mysql_dreamweaver_mx_2004 ÑазÑабоÑка web ÑайÑов.pdf
php_mysql_dreamweaver_mx_2004 ÑазÑабоÑка web ÑайÑов.pdf
php_mysql_dreamweaver_mx_2004 ÑазÑабоÑка web ÑайÑов.pdf
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Глава 12. Поддержание ссылочной целостности данных 307<br />
незадачливый пользователь попытается удалить запись первичной таблицы, на<br />
которую ссылаются записи вторичной таблицы, сервер либо выдаст сообщение<br />
об ошибке и не станет удалять эту запись, либо удалит также и все связанные<br />
записи вторичной таблицы. (Это задается самим разработчиком базы<br />
данных при создании связи между таблицами. Удобнейшая, кстати, штука!)<br />
Но MySQL перекладывает заботу о ссылочной целостности на плечи программиста,<br />
который будет разрабатывать клиенты данных для него. Нам самим<br />
придется думать о поддержании ссылочной целостности и не допускать<br />
ее нарушений. Чем мы сейчас и займемся.<br />
В этой главе мы будем, в основном, работать со страницей удаления категории<br />
Category_delete.<strong>php</strong>. Именно она выполняет удаление записи первичной<br />
таблицы, чреватое потерей межтабличной связи. Так что мы можем сразу же<br />
открыть ее в Dreamweaver.<br />
Простейший способ<br />
поддержания ссылочной целостности<br />
Вообще, существует два способа сохранения ссылочной целостности —<br />
простой и сложный. Мы рассмотрим их по очереди. И начнем, конечно,<br />
с простого.<br />
А простой способ заключается в том, чтобы прямо перед удалением записи<br />
первичной таблицы выполнить проверку, существуют ли во вторичной таблице<br />
записи, ссылающиеся на удаляемую. Если они существуют, удаление<br />
записи не выполняется, и пользователю выводится соответствующее предупреждение.<br />
Если же на удаляемую запись первичной таблицы не ссылается<br />
ни одна запись вторичной таблицы, — путь свободен.<br />
Простым этот способ называется, в основном, потому, что его можно реализовать<br />
исключительно встроенными средствами Dreamweaver. Реализация<br />
его выполняется в три шага.<br />
1. Создаем набор записей, извлекающий из вторичной таблицы записи,<br />
ссылающиеся на удаляемую.<br />
2. Создаем необязательную область, содержащую форму с кнопкой Удалить и<br />
выводящуюся на экран, если созданный на первом шаге набор записей пуст.<br />
3. Создаем вторую необязательную область, но содержащую уже текст предупреждения<br />
о невозможности удаления записи. Понятно, что выводиться<br />
на экран она должна, если созданный на первом шаге набор содержит<br />
записи (не пуст).<br />
Что ж, если все это так просто, давайте воплотим этот способ в программном<br />
коде. Dreamweaver у нас уже запущен, страница Category_delete.<strong>php</strong> открыта,<br />
значит, можно приступать к работе прямо сейчас.