Реализация тегов по принципу "city & country"

Сейчас для проекта понадобилось что бы была организована функция тегов по принципу «city & country» но что бы тег можно было вставлять не один а неограниченное количество.

То есть эта функция должна будет в отдельную таблицу в DB добавлять все не повторяющиеся теги, а если такой тег уже есть в этой таблице то второй раз его уже не вставляешь, а для связи будет другая таблица в которой будет указана связь между тегом и объектом к которому тег относится.

Я в принципе знаю как реализовать подобие «city & country» но как сделать разделение на много тегов пока не могу разобраться, подскажите кто знает или может уже реализовывал такую функцию.