kwaku Emma Ответов: 1

Агент Sql или служба windows? Когда это нужно?


I have a database db1 which has its own application developed with c#. There are several other applications, which each has its own database. These other applications store data in their own databases and record some documents in db1 using a stored procedure created in db1. The user of the db1 application needs to accept the document stored by the other application/database; when he accepts it, automatically some CRUD actions are performed in the database of the application that stored the document in db1. Db1 needs not to be aware of the other applications but the other way round because it is improper to modify db1 when new applications are developed in future. My question is how do I perform these CRUD actions automatically?: I was thinking of 1. Creating a job in mssql to perform that; when new applications are developed, a job is created for it to fetch the status of its document then perform the action in its database.
2. создание приложения службы windows для каждого из приложений, которое периодически проверяет состояние документа, хранящегося в нем в db1, а затем выполняет действия CRUD - эта служба будет работать на сервере.
3. Создание единой службы windows, которая извлекает статус всех документов, выполняющих CRUD-действия над списком баз данных. При разработке новых приложений их база данных добавляется в список.

Любые другие предложения приветствуются.

Что я уже пробовал:

Я не знаю, какой вариант выбрать: какой лучше

Dotnet_Dotnet

вместо приложения сэр вы можете разработать dll.

1 Ответов

Рейтинг:
1

RDBurmon

Я думаю об этом подходе

1) Вы должны подавать документы в какой-то таблице на DB1
2) добавьте дополнительные поля для хранения сведений о сервере БД, откуда поступает документ (другие приложения)
3) Напишите задачу в DB1 server, чтобы добавить удаленный сервер в DB1
Читайте здесь об удаленном сервере и зачем он нам нужен
Просмотр или настройка параметров подключения к удаленному серверу (SQL Server) | Майкрософт Документы[^]

4) Добавьте триггер в таблицу документов DB1 для поиска вновь принятого документа, а затем соответственно запустите операции CRUD на другой базе данных, используя подключение к удаленному серверу


kwaku Emma

Спасибо за ваши предложения. У меня есть проблема с пунктом 4: "добавить триггер в DB1..."
это означает, что если какое-либо новое программное обеспечение написано для вставки документов в DB1, триггер должен быть изменен? Я думаю, что это делать неприлично, что. ...А ты как думаешь?

RDBurmon

Нет необходимости изменять триггер, и именно поэтому мы храним детали в дополнительном поле (пункт #2), вам нужно написать этот триггер, который будет запускать CRUD в базе данных, используя детали подключения, упомянутые в этом дополнительном поле, конечно, вам нужно удаленное подключение к базе данных, и именно поэтому мы добавляем удаленное подключение к серверу (пункт # 3)