Связь здесь не взаимно однозначна: Moscow относится к #1 и #2. Для поиска по городу нужен индекс «город → коллекция Name», а не одно значение на каждый город.
Установление соответствия городов и значений в колонке Name
Связь здесь не взаимно однозначна: Moscow относится к #1 и #2. Для поиска по городу нужен индекс «город → коллекция Name», а не одно значение на каждый город.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо разработать механизм, который будет сопоставлять указанные города (например, NY, Moscow) с определённым значением в поле Name.
| ID | City | Name |
|----|-------------|------|
| 1 | NY, Moscow | #1 |
| 2 | Moscow | #2 |
| 3 | Singapur | #3 |
Ответ
Связь здесь не взаимно однозначна: Moscow относится к #1 и #2. Для поиска по городу нужен индекс «город → коллекция Name», а не одно значение на каждый город.
Нормальная модель БД — отдельные таблицы записей и городов плюс связь record_city(record_id, city_id). Для исходного текстового формата разделите City по запятой, удалите краевые пробелы и добавьте Name в множество каждого города. Тогда NY → {#1}, Moscow → {#1, #2}, Singapur → {#3}. Поиск подстрокой опасен частичными совпадениями. Если требуется выбрать только одно Name, условие должно задать приоритет; из приведённых данных он не следует.