2014-09-30 8 views
0

Добрый деньПриложение CRUD без удаления

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

Заранее спасибо

+1

Пока они имеют жесткий диск с бесконечным размером, то да. – PhillipH

ответ

1

Я думаю, что мы все еще нуждаемся Удалить, потому что будут какие-то записи, мы не хотим, чтобы увидеть больше. Удалить вот только о логическом удалении (Soft Delete), мы устанавливаем поле «Удалено», это правда. Удаленная запись все еще находится в базе данных, и мы всегда можем ее получить позже.

Это обычная конструкция, так как хранение в эти дни больше не является большой проблемой.

+1

Это правда. Я предоставил эту функциональность, которая «удаляет» запись, но на самом деле просто скрывает запись и позволяет им извлекать ее, когда это необходимо. – spongyboss

1

Это довольно обычное требование. Есть веские причины, по которым им это нужно. Во-первых, им, возможно, придется иметь возможность фиксировать данные во времени. Например, репутация продавца может быть оценена на основе того, сколько людей, посещающих его презентации, являются клиентами, которых компания хочет сделать целевыми или нет. Поэтому, если Джон Смит больше не является целью, но был в марте, когда событие было проведено, вы не захотите удалить John Smith, вы хотите отображать начальные и конечные даты.

Существуют также нормативные/юридические причины, по которым вы, возможно, не захотите удалять записи. В системах учета, например, даже некорректные затраты НИКОГДА не удаляются, они откатываются с отрицательной записью. Это значит, что аудиторы могут следить за действиями, которые произошли.

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

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

Смежные вопросы