Если у вас есть дерево связанных строк в разных таблицах, удаление должно продолжаться снизу вверх.В этом случае любые студенты, сотрудники и инвентарь скрепок должны быть удалены (или перераспределены в другой отдел) перед удалением отдела.
Каскадное удаление «решает» эту проблему.Они заставляют соответствующую информацию самоуничтожиться.Я считаю, что в целом более уместно разобраться с этой проблемой самому, а не вооружать оружие, которое может вернуться и укусить меня где-нибудь нежно.
Еще одним соображением во многих случаях является сохранение истории.Если у вас есть контрольный журнал материалов, приобретенных каждым отделом, то вы не можете удалить отдел, не потеряв историю.Вы могли бы оставить связь вне, но это оставило бы историю, висящую с недействительным, или возможно переработанным, идентификатором отдела.Типичное решение - добавить флаг, указывающий, что отдел или другой объект - Inactive
.Аналогичным образом, неактивная учетная запись пользователя не позволяет входить в систему, но любая история, связанная с пользователем, останется нетронутой.