Ik snap niet helemaal wat je bedoelt: een gebruiker is gekoppeld aan een item, of hij is dat niet. In het laatste geval verwijder je het record uit de koppeltabel. Er zijn wel een paar methoden om geschiedenis van gebruikers vast te leggen, of in ieder geval een status bij te houden. De makkelijkste: een Ja/Nee veld toevoegen aan de koppeltabel. Aangevinkt, dan is de koppeling actief, uitgevinkt: niet meer actief. In verdere formulieren kun je dan filteren op de status van dat vak. Alternatief: een begin- en einddatum toevoegen aan de tabel. Als je een koppeling maakt, voeg je een begindatum toe, als hij eindigt, een einddatum. Komt er een nieuwe koppeling, weer een record maken met een begindatum. Nadeel: je krijgt voor dezelfde gebruiker-item combinaties meer records. Maar in queries kun je makkelijk op de meest recente filteren, zodat je simpel de actieve kunt filteren (laatste begindatum+einddatum leeg), het laatste afgesloten record (laatste begindatum+einddatum niet leeg) en de historie-records (begindatum < laatste begindatum).
Mijn versie zou zijn: Historietabel maken, en op het moment dat er een nieuw record voor een bepaalde combinatie nodig is, het oude record naar de Historie kopieëren, het record in de koppeltabel aanpassen en de nieuwe datum in Begindatum, en Einddatum leegmaken. Op die manier houd je altijd voor elke combinatie één record, en kun je toch de historie terughalen/teruglezen mocht dat nodig zijn.