allora devo individuare la funzione che salva i dati nel db...
io non lo farei...
la funzione che salva nel db prende un array e salva nella tabella indicata in "table" il valore nella colonna corrispondente alla chiave... ciò appartiene al core... non la toccherei... puoi cercare un modo per fargli scrivere su + tabelle... o puoi scriverti tu una funzione alternativa...
no no allora, io ho 3 tabelle
eventi
tags
tags_x_eventi
ogni volta che inserisco un evento, inserisco anche i suoi tag che però vanno in un'altra tabella (tags) che contiene solo l'id del tag e il nome. in una terza tabella inserisco l'id dell'evento e l'id del tag associato. se inserisco un tag che già esiste mi basta solo inserire un nuovo incrocio nella tabella tags_x_eventi cos' non ho doppioni.
punto primo... se vuoi un gestore di eventi ti consiglio xcal, l'ho scritto io

è open e puoi implementarlo come ti pare... ti supporto io (quindi disponibilità e lingua italiano) ora sto già lavorando al 2.0 ed ho circa 100 download al giorno della versione 1.0.2Fix... dagli un occhiata almeno...
punto secondo... non esiste il metodo che pensi... non è corretto...
-"l'incrocio" è inutile... basta fare una ricerca %like% con sql al momento della stampa dell'evento, una 3° tabella occupa inutilmente il db e non velocizza affatto le operazioni
-dovresti creare 2 form,
uno per inserire nuovi tag nella tabella dei tag ed uno per sscrivere un nuovo evento, aggiungendo un campo tag che si relazioni con la tabella ma che non scriva nello stesso momento.
quando passerai ad inserire la googlemap con la location dell'evento o a creare il calendario dimmelo ;P
ciao, Jonx