• Essentially if you're lazy then you can use cascaded deletes 🙂

    You may wish to consider adding a "deleted" flag to a record rather than actually deleting it anyway.

    Cascading deletes let you forget about deleting child records (eg lines on an order) before deleting a parent record (the order itself). I personally don't use them for the reasons others have mentioned. However, I'd much rather work in a database that at least enforced referential integrity (with or without cascading deletes) than having no defined referential integrity at all! I've seen a system where they had no RI declared and just deleted the order header record leaving behind the orphan order details.... silly, lazy and I'd say incompetent. 😀