I'm designing a database for an events management site - there is a table of venues and a table of events. Each event is in a venue (stores the venue's id) and each venue is in a city. It must be possible to search for event by city, should city be a field in the venues table (which could possibly result in duplicate cities due to misspellings) or should there be a table of cities (each with an id and a name) and a one-to-many table linking cities with venues (cityid, venueid)?
I know this is a pretty basic question, but I'm not really sure whether the extra join and extra two tables would be worth it or not.
Thanks in advance
[EDIT] @tvanfosson: Changed from many-to-many to one-to-many since each venue is associated with a single city.