In Salesforce, building a future-looking data model is important. You generally want to anticipate issues before they occur.
One consideration that is overlooked is when a parent record has too many child records. Or when one user owns too many of the same records.
When this happens, it’s called data skew.
There are multiple forms for data skew, but these are the most popular. “Too many” generally means about 10,000.
This means a single record should not have more than 10,000 children. This may seem like a huge amount of data, but it can add up more quickly than you realize.
To prevent this type of data skew, you can create a text(18) field instead, and set it to the parent’s Record Id. This simulates the relationship while avoiding data skew.
The takeaway
Whenever creating a lookup or master-detail field, take a moment to consider whether the object you’re pointing to may have too many children.
If it’s inevitable, store the parent’s Record Id instead.