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