Приветствую! Хотелось бы найти оптимальный алгоритм для импорта данных. Начну с маленького абстрактного примера:
CODE (
htmlphp):
скопировать код в буфер обмена
|Назв. | Бренд |Цена|Кол.| Цвета |
------------------------------------------------
Товар 1;Samsung;5555;1000;белый,синий,красный;
В данном случае, нужно:
1. В таблицу
`products` записать/обновить: Название, Цену, Кол-во, а вместо названия бренда - его ID из соответствующей таблицы (напр.,
`brand`). Если такого бренда не существует, то предварительно записать его.
2. Варианты цветов, записать в другую таблицу. Пусть это будет
`product_option`, куда записывается id товара, и id цвета. Как и с брендами, если цвета не существует, то его нужно сначала внести в таблицу
`colors`.
Имеет ли смысл записывать все данные сначала во временную таблицу и писать процедуру для всех вышеперечисленных действий или же просто обрабатывать в цикле на уровне PHP каждую строку? Второй способ смущает тем, что для каждой строки реальных данных, возможно придётся делать до ~20 запросов. Сервер (VDS) слабенький: одно ядро 3.2 ГГц, 1Gb оперативки. Поэтому первый вариант, по чисто субъективному мнению, должен быть менее расточительный. К примеру, для тех же брендов, получится всего два запроса:
1. Первым запросом запись/обновление в таблицу `brand` - INSERT ... ON DUPLICATE KEY UPDATE
2. Вторым запросом - замена названий на идентичные им ID
Вроде бы и проще, и менее затратно по ресурсам, однако так ли оно на самом деле - не знаю.
В общем, хотелось бы послушать, как справлялись те, кто с данной задачей уже сталкивался и какие способы проверил на практике. Спасибо.