I have two custom objects, call them Parent and Child. Child has a Lookup to Parent, via Parent__c. It is not a Master:Detail relation.
What pattern could I use to prevent deletion of a Child record by users, except in cases where the Parent record is being deleted? In other words, I would like to implement a cascade delete, but not allow users to delete Child records themselves.
Should I simply accomplish this by revoking Delete permission on Child, and implement the cascade delete in a trigger on Parent? What is the best practice?