- Define the different types of object relationships and their typical use cases.
- Create or modify a lookup relationship.
- Create or modify a master-detail relationship.
Now that we’re comfortable with objects and fields, it’s time to take things to the next level with object relationships. Object relationships are a special field type that connects two objects together.
Let’s think about a standard object like Account. If a sales rep opens an account, they’ve probably been talking to a few people at that account’s company. They’ve probably made contacts like executives or IT managers and stored those contacts’ information in Salesforce.
It makes sense, then, that there should be a relationship between the Account object and the Contact object. And there is!
When you look at an account record in Salesforce, you can see that there’s a section for contacts on the Related tab. You can also see that there’s a button that lets you quickly add a contact to an account.
The Account to Contact relationship is an example of a standard relationship in Salesforce. But just like objects and fields, you can build custom relationships as well. In the last unit, you created two objects: Property and Offer. Wouldn’t it be great if all the offers made on a home showed up on its record in Salesforce?
Before we do that, let’s talk about the different kinds of relationships you can create in Salesforce.
There are two main types of object relationships: lookup and master-detail.
In our Account to Contact example above, the relationship between the two objects is a lookup relationship. A lookup relationship essentially links two objects together so that you can “look up” one object from the related items on another object.
Lookup relationships can be one-to-one or one-to-many. The Account to Contact relationship is one-to-many because a single account can have many related contacts. For our DreamHouse scenario, you could create a one-to-one relationship between the Property object and a Home Seller object.
While lookup relationships are fairly casual, master-detail relationships are a bit tighter. In this type of relationship, one object is the master and another is the detail. The master object controls certain behaviors of the detail object, like who can view the detail’s data.
For example, let’s say the owner of a property wanted to take their home off the market. DreamHouse wouldn’t want to keep any offers made on that property. With a master-detail relationship between Property and Offer, you can delete the property and all its associated offers from your system.
More on Relationships
Just like in real life, relationships are complicated. Here’s a bit more information to help you differentiate between lookup and master-detail relationships.
Typically, you use lookup relationships when objects are only related in some cases. Sometimes a contact is associated with a specific account, but sometimes it’s just a contact. Objects in lookup relationships usually work as stand-alone objects and have their own tabs in the user interface.
In a master-detail relationship, the detail object doesn’t work as a stand-alone. It’s highly dependent on the master. In fact, if a record on the master object is deleted, all its related detail records are deleted as well. When you’re creating master-detail relationships, you always create the relationship field on the detail object.
Finally, you could run into a third relationship type called a hierarchical relationship. Hierarchical relationships are a special type of lookup relationship. The main difference between the two is that hierarchical relationships are only available on the User object. You can use them for things like creating management chains between users.
When you start adding relationships between objects, remember that you’re increasing the complexity of your data model. That’s not a bad thing, but be extra cautious when you do things like change and delete objects, records, or fields. Check out the resources section for more information on relationship behaviors.
We’re ready to jump back in with D’Angelo to build some relationships for the DreamHouse app. Let’s say DreamHouse wanted a way to track users who favorite properties on their website. This feature can help DreamHouse’s real estate brokers reach out to potential home buyers.
To start, create a custom object called Favorite with an Auto-Numbered name field. If you need a reminder on how to create objects, check the previous unit.
We’re going to create two custom relationship fields on the Favorite object. First, let’s create a lookup relationship that lists the users who favorite a property.
- From Setup, go to .
- On the sidebar, click Fields & Relationships.
- Click New.
- Choose Lookup Relationship and click Next.
- For Related To, choose Contact. For the purposes of DreamHouse, contacts represent potential home buyers.
- Click Next.
- For Field Name, enter Contact and click Next.
- Click Next, Next, and Save & New.
Now, we’re going to create a second relationship field. We want a master-detail relationship where Property is the master and Favorite is the detail.
- Choose Master-Detail Relationship and click Next.
- For Related To, choose Property.
- Click Next.
- For Field Name, enter Property and click Next.
- Click Next, Next, and Save.
Great job! Our Favorite object is all set up. Now, if you look at a Property or Contact record, you’ll see that there’s a Favorites section in the related tab.