Create Object Relationships
After completing this unit, you’ll be able to:
- 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.
What Are Object Relationships?
Now that you’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.
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 you do that, you should learn about the different kinds of relationships you can create in Salesforce.
The Wide World of Object Relationships
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, 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.
Create a Custom Object
You’re ready to jump back in with D’Angelo to build some relationships for the DreamHouse app. Say DreamHouse wanted a way to track users who mark particular properties as favorites 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 and add a field to the object.
- Click the Object Manager tab.
- Click Create | Custom Object in the top-right corner.
- For Label, enter
- For Plural Label, enter
- Check the box for Launch New Custom Tab Wizard after saving this custom object.
- Leave the rest of the values as default and click Save.
- On the New Custom Object Tab page, click the Tab Style field and select a style you like.
- Click Next, Next, and Save.
Create a Lookup Relationship
Next, create two custom relationship fields on the Favorite object. First, create a lookup relationship that lists the users who select Favorite for a property.
- From Setup, go to Object Manager | Favorite.
- 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, then click Next.
- Click Next, Next, Next, and Save.
Create a Master-Detail Relationship
Now, create a second relationship field. You want a master-detail relationship where Property is the master and Favorite is the detail.
- On the Object Manager page for the custom object, click Fields & Relationships.
- Click New.
- Select Master-Detail Relationship and click Next.
- For Related To, choose Property.
- Click Next.
- For Field Name, enter
Propertyand click Next.
- Click Next, Next, and Save.
Now, if you look at a Property record, you’ll see Favorites listed in the related tab.
Add a Favorite Property
Next, take a look at how to view favorite properties.
- From the App Launcher find and select Sales.
- Click the Properties tab in the navigation bar. If you don’t see it, look under the More dropdown.
- Click the name of a Property record.
- Click Related. You’ll see Favorites (0) in the related tab.
- Click New.
- Enter a name for Favorite Name, then click Save.
Great job! Our Favorite object is all set up.
Where possible, we changed noninclusive terms to align with our company value of Equality. This is a work in progress, so if you find a term to evaluate for inclusive language, click Provide feedback for this badge in the right sidebar to submit it.