My organization awards scholarships. I have two objects: scholarship and recipient. I need to be able to track the awards that each recipient receives, without creating a new record each time the same award is handed out.

What I have thought of:

  • Use recipient object only, use a picklist for award type and workflow to auto-populate the value of each of the three awards based on which award is chosen from the picklist

Issue: We have recipients that win awards multiple years, so we don't want duplicates.

  • Use junction object with recipient and award.

Issue: Don't have/need a third object.

  • Create custom code and VF to add the 'add product' functionality to a custom object. Use standard product object as the award/scholarship, rename field labels and tabs.

Issue: Can't find enough info on how to go about this. I can write some VF and Apex, but need some guidance for this.

In essence, I need awards to work similar to how products and opportunities do, but on our custom object recipient or standard contact if that's any easier.

Suggestions are welcomed.

  • A junction object seems to me to be the natural solution here. What is your concern about that approach?
    – David Reed
    Jul 8, 2020 at 19:50
  • What would be the third object in a junction object? Or does there have to be one? Jul 8, 2020 at 20:05
  • 1
    A junction object is a third object. I would probably call it something like "Scholarship Award".
    – David Reed
    Jul 8, 2020 at 20:05
  • Recipient, award, and scholarship award - isn't that two of award? Jul 8, 2020 at 21:39
  • You said that your objects are Scholarship and Recipient. A junction object between them, Scholarship Award, would represent one instance of a specific Scholarship being awarded to a specific Recipient.
    – David Reed
    Jul 8, 2020 at 21:44

1 Answer 1


Converting my comments to an answer.

A junction object seems to me to be the natural solution here. A junction object represents a point of connection between a single record of each of its parents. Here, the parents would be Recipient and Scholarship, and a junction object - perhaps named something like Scholarship Award - would represent one instance of a specific Scholarship being awarded to a specific Recipient.

That junction object can model metadata about the specific award, such as its year or award date, amount, and so forth.

Only via a junction object can you effectively model and report on many-to-many relationships, where each Scholarship may be awarded to many Recipients from year to year and each Recipient can receive multiple Scholarships.

  • Thanks, I think I understand now. If scholarship is the parent that determines the type of award, what would be the unique identifier on the scholarship award? What would be the label on each record if there’s only 3 types of scholarships? Jul 9, 2020 at 23:04
  • I think those questions go to your business requirements. You may choose to use an Autonumber Name field on your junction object, and track any additional metadata for the award you wish, such as year or amount. I don't know what you mean by label.
    – David Reed
    Jul 9, 2020 at 23:17
  • Sounds good. I may settle for numbering our awards and not displaying the tab. I will try this solution out. Thanks for all your help. Labels just meant the name of the record, but auto number helps solve this. Jul 10, 2020 at 2:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .