What if you instead added a contractor column to the project table, then added a multi-select choice component to select all of the contractors. This will give you a comma delimited list of contractors for each project in that new contractors column. Then you can use a Split Text column to split that list of contractors into an array. Now you can use that column to creat a relation from the contractor table to the project table and vice versa. That way you can eliminate the third container table all together and you won’t have to worry about duplicates.
To add another contractor, all you need to do is open the project, select the choice component, and select another contractor from the choice list. Since it’s a multi select choice, it will have the existing contractors already marked, and you can select additional contractors. It will just update the comma delimited list in the column.