Niestety nie o to mi chodzi

Sorrki za to, że się naszukałeś niepotrzebnie rozwiązania.
Widzisz, mój formularz jest tworzony przy pomocy skryptu. Skrypt pobiera z bazy danych produkty zapisane w Tabeli nr. 2 "
produkty", dzieli je na grupy według Tabeli nr. 3 "
grupy_produktow" i w takiej podzielonej postaci wyświetla je w formie checkbox'ów. Z racji tego, że te checkbox'y są tworzone na podstawie rekordów zaciągniętych z bazy danych, nie ma żadnego problemu, żebym przy okazji zaciągał również ID produktu (np. w postaci input "hidden") który jest wyświetlany obok danego checkbox'a. Żeby jeszcze bardziej zobrazować tą sytuację podam przykład.
W tabeli "produkty" przechowuję m. in. rekord: "arbuz", któremu został przydzielony ID = 10. Przy pomocy skryptu pobieram wszystkie rekordy z tej tabeli i wyświetlam pogrupowane na stronie w postaci:
<label><input type="checkbox" value=" <?php echo id_produkt(); // funkcja zwracająca ID produktu, w tym przypadku: 10 ?> " />
<?php echo nazwa_produktu(); //funkcja zwracająca nazwę produktu w tym przypadki: arbuz ?> </label>
Mam nadzieję, że jest to w miarę czytelne.
Teraz gdy mam ileś tam tak zbudowanych checkbox'ów, w momencie gdy wysyłam formularz, skrypt pobiera mi ID produktu wpisanego w checkbox, oraz z sesji pobiera ID użytkownika i taki rekord umieszcza w bazie danych w tabeli "
wybrane_produkty". Z tym nie ma problemu.
Dodatkowo strona skonstruowana jest w ten sposób, że w momencie gdy użytkownik chce ponownie dokonać zmian w swoim profilu, to wyświetla mu się formularz z zaznaczonymi wcześniej przez niego produktami. W omawianym przypadku pojawi mu się zaznaczony checkbox "arbuz". To jest proste.
Problem pojawia się w momencie gdy ten użytkownik wchodząc ponownie na swój profil, chce odznaczyć tego durnego arbuza. Odznacza go i wysyła formularz przy pomocy submit'a "ZAPISZ".
I teraz jak mam to zrobić, żeby skrypt wychwycił to, że użytkownik odznaczył tego checkbox'a i na tej podstawie usunął ten i tylko ten konkretny wpis z Tabeli "
wybrane_przedmioty"
Żeby to zrealizować wymyśliłem dwa sposoby. Mimo tego, iż każdy z tych sposobów jest w stanie zrealizować to czego oczekuję, to wydają mi się one mało "sensowne" / optymalne...
Pierwszy sposób polega na usuwaniu w pierwszym kroku wszystkich produktów przypisanych do danego użytkownika po czym w drugim kroku skrypt by dodawał aktualnie wybrane przy pomocy checkbox'ów produkty. Sposób ten jest bardzo prosty do wykonania, jednakże przy każdej nawet pojedynczej zmianie w profilu, usuwałby wszystkie rekordy przypisane do danego użytkownika i wpisywałby je na nowo nie uwzględniając jedynie tych odznaczonych.
Drugi sposób polega na tym, że pobierałbym wszystkie rekordy z tabeli "
wybrane_przedmioty" przypisane do danego użytkownika po czym zapisywałbym je do tablicy. Dla każdego takiego rekordu sprawdzałbym, czy istnieje zaznaczony, odpowiadający mu checkbox. Jeżeli nie istnieje checkbox, którego "value" równa się którejś z wartości w Tablicy, to kasuj ten wpis.
Który sposób jest lepszy? A może w ogóle takie zadania realizuje się przy pomocy innych narzędzi ?