Схема строительных принадлежностей и объемная вставка - PullRequest
0 голосов
/ 08 декабря 2011

Я разработал приложение для автоматизации автосервиса.Я еще запустил модуль аксессуаров, но я не представляю, как мне построить схему модели данных.

У меня есть данные аксессуаров в текстовом файле, строка за строкой (не cvs или ext., Из-за этогоЯ разделить тему по подстроке).Каждый месяц фабрика отправляет файл данных в сервис.Он включает цены, имена, коды и т. Д. Каждый месяц цены обновляются.Я думал, что bulkinsert (и я сделал) был хорошим выбором для переноса данных в SQL, но это не решение моей проблемы.Я не хочу дублировать данные только для новых цен.Я подумал вставить только цены в другую таблицу и построить связь между Аксесуарами - AccesoriesPrices, но иногда в список можно добавлять некоторые новые аксессуары, поэтому я должен проверить каждую строку таблицы Аксессуаров.И, с другой стороны, я должен сохранить количество аксессуаров, счетов и т. Д.

Кстати, они отправляют 70 000 строк каждый месяц.Так кто-нибудь может мне помочь?:)

Спасибо.

1 Ответ

1 голос
/ 08 декабря 2011

70000 строк не большой файл.Вам придется самостоятельно проанализировать этот файл и выполнить обычные операторы insert и update на основе содержащихся в нем данных.Нет необходимости использовать массовые операции для данных такого размера.

Наиболее распространенный подход к чему-то подобному - это написать простой оператор SQL, который принимает все параметры, а затем выполнить что-то вроде этого:

if(exists(select * from YourTable where <exists condition>))
    update YourTable set <new values> where <exists condition>
else
    insert into YourTable (<columns>) values(<values>)

(В качестве альтернативы вы можете попробовать переписать этот оператор, чтобы использовать оператор merge T-SQL)

Где ...

  • <exists condition> представляет все, что вам нужно проверить, чтобы увидеть, существует ли уже элемент
  • <new values> - это набор Column = value операторов для столбцов, которые вы хотите обновить
  • <columns> - это набор столбцов для вставки данных для новых элементов
  • <values> - это набор значений, который соответствует предыдущему списку столбцов

Затем вы перебираете каждую строку в вашем файле, анализируете данные в значениях параметров, затем выполняете вышеприведенный оператор SQL с использованием этих параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...