Перейти к содержимому

Фотография

Каскадное удаление данных


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 31 октября 2003 - 07:29

С точки зрения программиста все просто. Навешиваем констрейны на базу данных. При попытке удаления перехватываем эксепшен и делаем ролбек транзакции.
А пользователь вместо элементарной последовательности:
* Вызов меню / попытка нажатия на кнопку удаления. Все приехали, вижу что невозможно.
вынужден идти по длинному пути:
* Вызов меню -> отдание команды на удаление -> подтверждение команды.
Расчет времени по GOMS дает 2.4 - 3.6 секунды в первом случае и 8.4 во втором. В случае же Web приложения во втором варианте добавляются еще две задержки приложения 2-6 секунд. А это уже очень серьезно. Одно дело за 2.5 секунды понять, что удаление невозможно и совсем другое в течение 10 - 15 секунд заниматься нудной работой, забыть, что же делать дальше и выяснить, что все это напрасно.
Выдача пользователю информации о блокирующих объектах легко решается. Раз приложение знает, почему нельзя удалять, то этот список уже есть. Значит можно показывать его во всплывающей подсказке.
Пожалуй, еще один довод в пользу плохого интерфейса - это разгрузка сервера. Необходимость считать возможность удаления для всех элементов, даже если пользователь ничего удалять не собирается накладно. Но это обходится введением дополнительного свойства объекта «Есть ли ссылки?». Пропадает информативность? Хорошо, добавим команду «показать список блокирующих элементов»
Как это ни странно, но иногда использование констрейнов приводит к усложнению структуры базы данных.
Итак, все сводится к некоему усложнению кодирования. Что перевесит: удобство программирования или удобство использования? Пока в подавляющем количестве случаев программеры одерживают верх над конечными пользователями.
И это еще одна истина из длинного списка неприятных, поскольку «утаить их - нечестно, сказать же правду - значить, вызвать огонь на себя».
  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#2 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 31 октября 2003 - 08:09

По этому поводу буквально постоянно воюем с разработчиками: зачем давать нажать на кнопку удалить, если проще проверить что удалить нельзя и кнопульку к примеру задизэйблить? Воюем. С переменным успехом.

Не так давно открыт второй фронт - я перестал пропускать такую спецификацию :)
  • 0
Слава Панкратов
Редактор портала www.it4business.ru


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных