[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление категории
Okulo
Всем здрасте.
Появился вопрос -
есть например категория товаров categories и товары items
как реализовать проверку, что бы нельзя было удалить категорию, если в ней есть товары?

это делать на уровне БД? или проверять средствами РНР?

подскажите плиз как подходить к этому вопросу
kaww
Если база данных, котоую вы используете, позволяет, то можно и на уровне БД. Напимер, в innodb mysql есть такая возможность http://dev.mysql.com/doc/refman/5.5/en/cre...reign-keys.html
Okulo
Цитата (kaww @ 21.02.2015 - 06:18)
Если база данных, котоую вы используете, позволяет, то можно и на уровне БД. Напимер, в innodb mysql есть такая возможность http://dev.mysql.com/doc/refman/5.5/en/cre...reign-keys.html

тогда надо как то обработать ошибку бд?
может как то можно реализовать проверку с помощью РНР ?
sergeiss
Такие вещи лучше делать на уровне БД. Например, посредством триггеров. Вот тут почитай, например: http://phpforum.su/index.php?showtopic=84107 (естественно, что не только триггеры можно и нужно использовать).

Использование триггеров лучше по той причине, что ты можешь удалять из любого скрипта и тебе не надо помнить про тонкости логики. Ты просто формируешь (в ПХП) команду на удаление и отправляешь ее в БД. А уже БД определяет, что там можно делать и что нельзя, какие связанные действия необходимо выполнить и т.д. А в ПХП надо только обработать, что ответит БД.

Если ведется командная разработка с использованием одной и той же БД, то такой подход вообще единственно верный.

PS. Еще добавлю, что я считаю БД полноправным участником, а не "тупым" хранилищем данных. Поэтому немалую часть логики работы с данными необходимо относить к БД. Это я к тому уточняю, что на форуме уже были споры на эту тему. И я всегда утверждал и буду утверждать, что надо пользоваться всеми возможностями БД, в т.ч. и по обработке данных, а не только по их хранению. А именно, "статичная" часть логики просто обязана быть перенесена из ПХП в БД. Под "статичной" я подразумеваю то, что закладывается изначально и потом не будет изменено. В частности, связанность данных в таблицах, и не только она.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Okulo
sergeiss
спасибо за подробный ответ
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.