Отображение предупреждений об ограничениях внешнего ключа конечных пользователей, которые они понимают - PullRequest
0 голосов
/ 01 марта 2012

У меня есть приложение, которое работает с базой данных, которая использует ограничения внешнего ключа.

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

Как я могу показать пользователю сообщение, которое он поймет? «Вы не можете удалить это дело, так как оно все еще содержит предметы инвентаря».

Моя мысль - попытка ловить (ловить разные типы ошибок?), Но я не хочу использовать это для чего-то, что можно ожидать.

Приложение находится в VB.Net с использованием MySQL.data

1 Ответ

2 голосов
/ 01 марта 2012

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

Я думаю, что исключения касаются ошибок, которые вы не можете предвидеть.

изменить, чтобы уточнить:

Хранимая процедура (или код в вашей программе) может выполнять проверки всех задействованных таблиц или itможет даже COUNT() сколько записей будет затронуто запросом на удаление.Подсчитав, вы получаете дополнительное преимущество, сообщая пользователю , сколько предметов инвентаря связано с делом, в вашем примере:

"Вы не можете удалить это дело , поскольку он по-прежнему содержит 32 предмета. "

изменить, чтобы уточнить больше:

Это не означает, что ссылочная целостность не должнабыть правильно настроенным в БД, конечно.Если вы забыли некоторые проверки, у вас есть БД, которая работает для вас (и пользователь позвонит вам, чтобы узнать, что, черт возьми, говорит программа :)).

...