bondpuoq
@bondpuoq
Web-программист с недавних пор

Как организовать актуальность и целостность данных в БД?

Добрый всем времени суток и с днем валентина, кто празднует!

Появился проект по созданию личного кабинета пользователя и появился следующий вопрос:

Как организовать взаимодействие базы данных с веб-приложухой на ASP.NET? И речь идет не о ConnectionString и т.п., а об архитектуре. Допустим есть следующие варианты:

1) Например приложение "пинает" SQL сервер на наличие изменений каждую, ну, например минуту и выкачивает эти изменения (как это можно устроить? При чем, чтобы некорректные данные не отправлялись в БД)
2) С помощью пакета каждую ночь данные выгружаются в БД кабинета из БД удаленной, происходит их коррекция и загрузка (но тут проблема, данные будут с отставанием день, каждый раз)
3) ...Не знаю, предложите)

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

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

Всем заранее спасибо!
  • Вопрос задан
  • 419 просмотров
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman
C# the best
Entity Framework+DataAnnotations+DataValidation+Migrations
Ответ написан
Комментировать
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
Если хотите актуальности - то от поллинга не уйти.
Тут скорее нужно думать как грамотно организовать поллинг и как гарантировать доступность БД (в случае если IIS и БД на одном сервере - проблем нет).
Старайтесь отправлять как можно меньще данных - смотрите в сторону AJAX+JSON.
Актуализируйте только саммые важные данные, остальные отдельно по запросу пользователя (т.е. сделать обзорную страничку и несколько специализированных).

По поводу отказоустойчивости не понял - если убрали столбец из таблицы, то приложение нужно адаптировать. Как иначе?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы