2014-11-08 1 views
-1

Я действительно не понимаю причину использования MySQL Trigger, когда я могу проверять любые данные на прикладном уровне (например, используя PHP или JavaScript), а затем отправьте его в базу данных. Итак, в каких случаях я должен использовать триггеры?Почему я должен использовать MySQL Trigger, когда могу проверять данные на прикладном уровне

Читаю о триггеров здесь: http://www.mysqltutorial.org/sql-triggers.aspx

+0

И как вы узнаете, например, что это имя пользователя существует или имя пользователя и пароль такие же, как в базе данных? – Shibi

+1

Использование триггеров базы данных не имеет ничего общего с проверкой, поэтому причина вашего вопроса довольно неясна. –

+0

Если вы используете Google «зачем использовать триггеры базы данных», вы получаете около 38 миллионов результатов - один из них, возможно, ответит на ваш вопрос ... – mlinth

ответ

4

Не уверен, что производительность вопрос о котором вы говорите. Более того, вы поняли это неправильно; на уровне вашего приложения вы проверяете наличие достоверности данных или проверяете наличие вредоносных данных.

Принимая во внимание, что Trigger используется для принятия некоторых действий на основе события запуска, в котором инициирующим событием может быть любой оператор DML (insert/update/delete). Триггеры не используются для проверки данных или проверки достоверности данных.

Опять же, на заметке что-то, о чем следует заботиться на уровне БД; должен быть передан в БД.

Например, в вашем уровне приложения вы можете проверить, что введенный Age не текст и должен быть числом, но в Trigger вы убедитесь, что вход Age находится в определенном диапазоне (скажем, Возраст < = 100), а затем выполните некоторые действия, основанные на проверке.

+0

Спасибо за ответ Рахул. Вы говорите в Trigger. Я проверю, находится ли вход Age в определенном диапазоне, и выполните некоторые действия на основе проверки. Я считаю, что я могу выполнить эту проверку и в моем PHP-скрипте (например, если age <= 0 делает это, если возраст => 80 делает это). Если да, то почему мы здесь используем триггеры? Именно в этом я смущен. Кроме того, использование слова «валидация» было ошибкой, я должен был использовать вместо этого слово «проверка». –

+0

НЕТ, это просто пример. Что делать, если в триггере вы хотите проверить, существует ли клиент в БД. Можете ли вы выполнить эту проверку в приложении? Триггеры предназначены для принятия некоторых мер, основанных на определенной проверке ограничения целостности. – Rahul

+0

Собственно, нет! Если мы идентифицируем клиента по его электронной почте, мне нужно получить доступ к базе данных, чтобы проверить, есть ли какая-либо из строки в таблице, где хранятся данные пользователей, это письмо. Но опять же, я не использую триггеры, которые выполняют это действие, поэтому я действительно не могу понять использование триггеров здесь. –