Difference between master-detail relationships and lookup relationships
|
Master-detail relationship
|
Lookup relationship
|
|
You can define master-detail
relationships between custom objects or between a custom object and a
standard object (standard object must be the parent).
|
You can define a
relationship between any two objects, standard or custom.
|
|
When a record in a master
object (parent) is deleted, all the records in the detail object (child) that
are related to that master record will be deleted.
|
When a parent object is
being deleted, you can configure a child object to either clear the parent
record value in the child record or prevent deletion of the parent record.
|
|
All child records must have
a related parent record.
|
The parent record may not
require a related parent record.
|
|
The ownership of the child
record is determined by the related parent record. Child records do not have
an owner.
|
Each child record has an
owner and is not related to the parent record.
|
|
The detail record inherits
sharing and security from the master record.
|
There is no security or
inheritance between related parent and child records.
|
|
To relate an object to
another object, no records should exist in the child object.
|
To relate an object to other
objects, there is no condition on the number of records.
|
|
If you have the Roll-Up Summary field in the parent
object, any create, edit, or delete action in the child record will trigger
an edit action in the parent object. If you have a validation rule and other
rules in parent object, the validation rules will trigger for the parent
object.
|
You cannot create the Roll-Up Summary field in the lookup
relationship using out-of-the-box Salesforce functionality.
|
|
Supports cross-object
workflow. You can configure a field update action to update a field in the
parent record using a value from the child record.
|
Does not support
cross-object workflow.
|
To create a master-detail relationship for an existing object with
records as the child object, you can initially define it as a lookup
relationship, populate all parent fields for all records, and then change the
relationship to a master-detail relationship.
You can build a many-to-many object relationship
using two master-detail relationships in a single custom object, which is known
as a junction object in that case.
Thanks for reading...