Клиенту необходимо перенести большой объем данных, и я считаю, что этот вопрос может быть достаточно общим для SO.
Устаревшая система
Профили студентов содержат такие поля, как имена, адреса электронной почты и т. д., а также название университета. Название университета представлено в виде строки и поэтому повторяется, что является расточительным и медленным.
Наша новая форма
Более эффективное решение состоит в том, чтобы иметь таблицу с именем university
, в которой имя университета хранится только один раз с внешним ключом (university_id
), а раскрывающийся список HTML просто отправляет university_id
на сервер. Это значительно ускоряет выполнение, например, GROUP BY
запросов. Новые данные формы, поступающие в базу данных, работают нормально.
Проблема
Как мы можем написать запрос, который будет ВСТАВЛЯТЬ все остальные столбцы (first_name
, last_name
, email
, ...), но затем вместо того, чтобы вставлять строку university
, узнавать ее university_id
из таблицы university
и вместо этого ВСТАВЛЯТЬ соответствующий int исходной строки? (сценарий: данные находятся в файле CSV, который мы будем обрабатывать в синтаксисе INSERT INTO)
Большое спасибо.