Secondo me, senza usare tabelle di collegamento, potresti usare la serializzazione di un array.
Mi spiego meglio...
Prima di tutto guarda qua: serialize()
Come vedi quella funzione permettere di metter ein formato "testo" un array di valori. Questo ti permette di creare un campo "iscrizioni" per ogni mail iscritta:
pippo@mail.com | array(1, 3, 6, 9)
Cosi facendo registri che pippo è registrato alla categoria di newsletter 1, 3, 6 e 9.
Prima di inserire nel DB l'array gli dai un serialize() e quando lo estrai usi l'unserialize(). Cosi avrai sempre sottomano l'array delle categorie a cui una determinata mail è iscritta.
![]()