В настоящее время я сижу на некрасивом бизнес-приложении, написанном в Access, которое получает электронную таблицу раз в два дня и импортирует ее в MDB. В настоящее время я преобразую крупный проект, который включает это в SQL Server и .net, особенно в C #.
Для размещения этой информации есть две таблицы (здесь псевдонимы), которые я назову Master_Prod и Master_Sheet, соединенные на родительском ключе идентификатора с таблицей Master_Prod, ProdID. Есть также еще две таблицы для хранения истории, History_Prod и History_Sheet. Существуют и другие таблицы, которые выходят за пределы Master_Prod, но ограничиваются двумя таблицами для пояснения.
Так как это было написано в Access, подпрограмма для обработки этого файла изобилует триггерами, закодированными вручную, для работы с историей, которые были и были постоянной болью, чтобы не отставать, одна из причин, почему я рад, что это движется к сервер базы данных, а не инструмент RAD. Я пишу триггеры для отслеживания истории.
Мой план состоит в том, чтобы / было создать объект, моделирующий электронную таблицу, проанализировать данные в нем и использовать LINQ, чтобы выполнить некоторые проверки на стороне клиента перед отправкой данных на сервер ... В основном мне нужно сравнить данные на листе к соответствующей записи (если ничего не существует, то ее новая). Если какое-либо из полей было изменено, я хочу отправить обновление.
Первоначально я надеялся поместить эту процедуру в некую сборку CLR, которая принимает список IEnumerable, поскольку у меня уже есть электронная таблица в этой форме, но я недавно узнал, что она будет сопряжена с довольно важной базой данных. сервер, который меня очень беспокоит.
Стоит ли использовать хранимую процедуру CLR для? Существуют и другие точки входа, куда поступают данные, и если бы я мог построить процедуру для их обработки с учетом переданных объектов, то я мог бы убрать много бизнес-правил из приложения за счет потенциальной производительности базы данных.
В основном я хочу забрать проверку обновлений у клиента и поместить ее в базу данных, чтобы система данных определяла, следует ли обновлять таблицу, чтобы триггер истории мог сработать.
Мысли о лучшем способе реализовать это в том же направлении?