Your intersection table should not include the Program/Partner Names at all, it should only include the Program/Partner ID values.
By keeping a copy of the names in the intersection table you have denormalized your data. This is generally considered to be a "Bad Thing".