Редизайн базы данных затем перезагрузить подход с использованием linq для Excel и сущности Framework - PullRequest
0 голосов
/ 20 мая 2011

Итак, у меня есть несколько таблиц с большим количеством данных.Допустим, это таблицы A, B и C. Я хочу добавить поля идентификатора автоматического увеличения для каждой из этих таблиц, нормализовать их, поменяв местами некоторые поля между таблицами и добавив дополнительную таблицу D. Gulp.Есть три цели: 1) перепроектировать базу данных и перезагрузить существующие данные.2) Включите загрузку данных из электронной таблицы, чтобы добавить / отредактировать / удалить четыре таблицы.3) Включите веб-интерфейс для добавления / редактирования / удаления четырех таблиц.

Мой текущий подход:

  • Я думал, что экспортирую плоский файл для всех данных в 3 существующих таблицах в csv (электронную таблицу).
  • Тогдарефакторинг структуры структуры базы данных
  • Затем используйте linq, чтобы превзойти записи электронных таблиц csv в объекты dto
  • Затем используйте Entity Framework для преобразования этих объектов dto в объекты, чтобы обновить базу данных с помощьюсоответствующие отношения между таблицами
  • Электронная таблица будет повторно использоваться для будущих объемных данных, добавляющих / редактирующих / удаляющих

Как насчет следующих инструментов?Массовая вставка служб SSIS. Хранимые процедуры

Я слишком усложняю это?Есть ли способ лучше?

1 Ответ

1 голос
/ 20 мая 2011

Какое у вас определение "много данных"?Для некоторых людей это 10000 строк, для других - миллиарды строк.

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

Если вам уже нужно разработать процесс массового импорта, возможно, имеет смысл извлечь из него повторное использование, выполнивэкспорт, но я бы не стал создавать весь этот процесс только для этого сценария.

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

Сначала убедитесь, что у вас есть хорошая резервная копия.

...