I might have a similar application .. not sure.
We assign game roles to various reporters. In some cases, the same role is given to multiple reporters.
1) When assigned, I insert the instance of GameAssignments into a BO: Reporter.GameAssignments
2) Each GameAssignments instance has a few different lists of reporters assigned to various roles. One example is Games.Assigned_Photographers which is calculated with this rule:
GameAssignments.Assigned_Photographers=LIST_LINE(GameAssignments.Role_Photographer,'',', ','Name_Last')
The result is a comma separated list of last names of the photographers for that game.