Scusami, volevo essere retorico e alla fine non s'è capito quel che volevo dire. Il progetto del database è sbagliato, oltre ogni ragionevole dubbio. Non sta né in cielo né tantomeno in terra che per aggiungere o modificare dati (le categorie in questo caso) si debba alterare lo schema del database.
devo dare alla possibilità a utenti diversi di creare le proprie categorie a piacimento e queste dovranno essere a loro volta delle tabelle
Perché una nuova categoria dovrebbe essere rappresenta tramite una nuova tabella? Non dovrebbe piuttosto essere un nuovo record nella tabella categorie? Cosa non va bene in uno schema del genere? (Ammesso che abbia capito quel che vuoi fare)
codice:
users ( id, ... )
categories ( id, user_id, ... )
items ( id, ... )
categories_items ( category_id, item_id )
Se questo schema ti pare che non serva al tuo scopo prova a spiegare più in dettaglio qual'è il tuo problema, e vedrai che verrà fuori una soluzione.