Установление соответствия городов и значений в колонке Name

Связь здесь не взаимно однозначна: Moscow относится к #1 и #2. Для поиска по городу нужен индекс «город → коллекция 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, условие должно задать приоритет; из приведённых данных он не следует.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее