2015-04-25 3 views
0

Мне было интересно, что является лучшим способом импорта продуктов в базу данных.Загрузка продуктов из файла excel

Названия продуктов имеют уникальные ску.

Файл Excel может содержать существующие файлы sku.

Один из способов сделать импорт является:

  1. Читать запись из первенствует
  2. Проверить Код для существования в таблице базы данных , если уже существует, обновить его или если не найден, вставьте его

Второй способ: 1. Прочитать отчет от excel 2. Проверить ску за существование в базе данных , если уже существует, удалите его (наверняка изменит create_data, auto_id) или если не найден, вставьте его

Если я загружаю сказать 1000 записей, то будет 1000 х 2 (обновление/удаление + вставка) запросы обстреляны база данных.

Есть ли другие эффективные решения?

Благодаря

+0

В зависимости от системы управления базами данных. Ключевые слова: «Вставить в дубликат ключа обновления» https://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html, http://docs.oracle.com/cd/E17952_01/refman -5.0-ru/insert-on-duplicate.html, https://msdn.microsoft.com/en-us/library/bb522522(v=sql.100).aspx –

ответ

0

Наиболее эффективным способом будет вариант 1. Как уже упоминал Джо R, вариант 2 вызывает ненужные вызовы базы данных.

Вы можете сделать это вариантом, хотя во многих случаях удаление всех продуктов даже является вероятностью.

У вас может быть опция DELETE или UPDATE, доступная для одной загрузки данных. Например, удаление было бы выгодным, если у вас много избыточных данных в базе данных, которые вы хотите удалить.

1

Я предпочел бы первый вариант, так как это на самом деле соответствует требованиям.

Вариант второй необязательно удаляет строки.

Смежные вопросы