...
A programme membership may be linked to zero [one?] or more placements.
A placement will be linked to at most [exactly?] one programme membership.
Given 1 and 2 above, a programme membership may have no related placements, and a placement may exist independently of any programme membership. This would allow legacy (unlinkable) data to be retained without particular exception-handling, and existing data bulk upload / editing functionality to be unaffected. In future this could be tightened-up if appropriate.
[There may be circumstances where a placement is linked to more than one programme membership. Specific examples TBC.]
Some historic placements / programme memberships may need to remain unlinked (dirty data, ambiguity).
Over the duration of a programme membership, is there expected to be one or more placements active at all times? Can a placement extend beyond the beginning/end of its linked programme membership?
Which placements are eligible to be linked to a programme membership are those for the same trainee where the placement post is the same as the programme post, i.e.:
...