Управляемые данными сайты для очень малых предприятий - PullRequest
0 голосов
/ 15 июля 2009

У меня есть клиент, у которого есть веб-сайт, посвященный продукту, с сотнями статических страниц продукта, которые генерируются отчетами Microsoft Access и отправляются через Интернет по протоколу FTP (это старый дизайн). Мы думаем о том, чтобы стать немного сложнее и создать веб-сайт, управляемый данными, возможно, с использованием ASP.NET MVC.

Вот мой вопрос. Поскольку это очень маленький бизнес (горстка сотрудников), я бы хотел, если смогу, избегать корпоративных шаблонов, таких как веб-сервисы. Как отправить обновленную информацию о продукте на веб-сайт в пакетном режиме? В среде SQL Server вы не можете просто отправить новую копию базы данных, не так ли?

Уточнение: У клиента уже есть система на его предприятии, где он хранит всю информацию о своем продукте и технические характеристики. Я хотел бы обновить базу данных у интернет-провайдера этой информацией.

Ответы [ 9 ]

3 голосов
/ 15 июля 2009

Вы не упоминаете, что именно является источником данных, но подразумевается, что его еще нет в SQL Server. Если это так, взгляните на SSIS .

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

1 голос
/ 15 июля 2009

Предполагается, что нет способа синхронизировать данные непосредственно между устаревшей системной БД (находится ли она в Access или Access только запускает отчеты) и БД SQL Server на веб-сайте (я не в курсе любой):

Проблема с «выталкиванием» данных непосредственно на сервер SQL заключается в том, что «старые» (уже в БД) записи не будут обновляться, а вместо этого удаляются и затем воссоздаются. Это большая проблема с внешними ключами. Кроме того, мне действительно не нравится идея предоставить клиенту какой-либо доступ к БД.

Итак, учитывая это, я считаю, что лучше всего написать относительно простую страницу, которая берет загруженный файл и обновляет базу данных. Файл, скорее всего, будет CSV, возможно, XML. После нескольких итераций написания этих страниц на протяжении многих лет, вот что я придумала:

  1. Показать окно загрузки файла.

  2. При загрузке следующей страницы сохраните файл во временную папку

  3. Перебрать каждую строку (элемент в XML) и проверять все данные. Внешние ключи, особенно, но и проверки бизнеса. Вы также можете проверить, существует ли строка заголовка и т. Д. Не обновляйте базу данных. 3a. Если существуют недопустимые данные, сохраните сообщение об ошибке в массиве
  4. В конце цикла покажите вид. 4а. Если были ошибки, покажите список сообщений об ошибках и попросите их повторно загрузить файл. 4b. Если ошибок не было, создайте ссылку с расположением файла из # 2 и флажком подтверждения

  5. После того как местоположение файла и флаг подтверждения были переданы, снова запустите цикл в # 3, но есть оператор if (Verified) {}, который фактически обновляет базу данных.

РЕДАКТИРОВАТЬ: Я видел ваш другой пост. Одно из предположений, которые я сделал, состоит в том, что базы данных не будут одинаковыми. то есть, у унаследованного приложения будет таблица или два. Может быть, просто продукты. Но новое приложение будет иметь заказы, товары, категории и т. Д. И т. Д. Это усложнит «просто загрузку файла».

1 голос
/ 15 июля 2009

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

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

РЕДАКТИРОВАТЬ: Этот подход предполагает, что вы можете убедить клиента отказаться от его текущей системы ввода данных в пользу централизованной панели управления через Интернет. Даже если это не так, база данных SQL может быть размещена на сервере, и клиентское приложение может быть настроено для связи с этим, поэтому вы всегда используете только одну базу данных. Судя по всему, это набор форм доступа и макросов, к которым у вас должен быть доступ к источнику.

1 голос
/ 15 июля 2009

Если вы модернизируете, и это горстка сотрудников, зачем вам выдвигать информацию о продукте в пакетном стиле?

Я не знаю точно, что вы подразумеваете под "управляемыми данными", но почему бы не позволить приложению ASP.NET напрямую запрашивать базу данных каталога продуктов SQL Server? Зачем вообще генерировать статические страницы?


ОБНОВЛЕНИЕ : хорошо, я вижу, реальный вопрос в том, как обновить базу данных SQL, работающую на ISP.

0 голосов
/ 02 декабря 2009

Используйте wget, чтобы отправить новый файл данных в приложение mvc, и как только данные будут получены действием, приложение mvc вызывает обработку / импорт данных (возможно, в рабочем процессе, если вам не нужны длинные запросы).

0 голосов
/ 15 июля 2009

У вас должен быть сервис, который регулярно обновляет данные в целевой БД. Вероятно, он будет работать на вашем компьютере с исходными данными (где находится Access-DB)

Служба может использовать SSIS или ADO.NET для записи данных. Вы можете сделать это через Интернет, потому что у вас есть доступ через сервер TCP / IP к предполагаемому серверу.

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

0 голосов
/ 15 июля 2009

Вы можете попробовать Dynamic Data Web Application.

0 голосов
/ 15 июля 2009

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

или используйте sql для отправки данных с помощью триггера в рассматриваемой таблице (ах).

Это то, что вы искали?

0 голосов
/ 15 июля 2009

Зачем тебе что-то толкать?

Вам просто нужно создать часть веб-страницы для управления продуктами и, во-вторых, общедоступную часть веб-страницы. Обе части будут касаться одной и той же базы данных SqlServer.

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