Редизайн базы данных, а затем перезагрузить подход с использованием linq для Excel и Entity Framework

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

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

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

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

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

1 ответ

Решение

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

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

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

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

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

Другие вопросы по тегам