Should I use tags for cities? I would like to have some advise on the following:

I'll be running a site with events. These events (channel entries) will take place in a certain city. I don't want to setup every city as a category, but use tags instead. My questions are:


Is it logical to use tags for cities?
Can I list all events based on a city (tag) on my template?


Thanks.
Probably and yes.

Using tags for cities:

If you want to allow users to add any city they want, tags are perfect. If not, you should predefine them, and use categories, dropdowns or multi-selects.

Since you don't know if the user has actually entered a city, you should consider validating it with a custom plugin:


Wait for the entries.onBeforeSaveEntry event
Check if the entered tag is a city. (You could use the Google Geocoding API)


.

List entries which have a specific tag:

You can use relations to find all entries which have a specific tag:

{% set tag = craft.tags.name('miami') %}
{% set relatedEntries = craft.entries.section('events').relatedTo(tag) %}

{# Gets all entries which have the 'miami' tag #}