Since the Summer 12 release of salesforce it's been possible to set the "Allow reparenting" attribute on master-detail fields. This somewhat blurs the traditionally clear line of when to use a master-detail relationship and when to use a lookup relationship.
In particular, what, if any, are the differences between using a lookup with Delete this record also and a master-detail with Allow reparenting?
Best Answer
A lookup (with Delete this record also) and master-detail share a large number of similarities:
There are some trivial differences:
And there are some potentially major differences:
In the end which to select often comes down to how you want to impact your sharing and security model. Lookups allow much greater flexibility here, but often this will require code and apex managed sharing to make full use of, although it can be leveraged with sharing rules.