следите за каскадом удаляет! пользователь случайно нажмет на значок приложения в маленькой корзине и удалит клиента, а затем все каскады будут удалять все следы этого клиента, заказы, счета, платежи, историю и т. д. из вашей базы данных. После того, как пользователь позвонит вам, чтобы сообщить вам об их маленькой ошибке, вам придется восстановить резервную копию и попытаться вернуть информацию обратно в базу данных.
Я бы посмотрел на "мягкие удаления", когда вы меняете только статус клиента с "активный" на "неактивный". строки не удаляются, сохраняя все данные внешнего ключа. Это позволяет отчетам запускать данные, поскольку они все еще существуют, а также легко отменять действия.
Мягкое удаление - это не единственный путь, это бизнес-решение о том, как с этим справиться, очистить данные или пометить их как неактивные. Это только то, что вы можете решить, потому что я не знаю вашего приложения или бизнес-логики. Я просто подумал, что предложу это в качестве альтернативы.