База данных
В системе используются несколько баз данных, что с одной стороны добавляет сложность, но с другой стороны позволяет максимально удобно использовать преимущества различных баз данных. В основе системы располагается sql-база, основное назначение которой - хранение первичных данных. Основные требования к sql базе данных - умение хранить и индексировать большие объёмы данных. Следующий слой MongoDb - объектная база данных. Основное назначение - хранение справочников и настроек системы. Данная база данных используется в связи с её гибким подходом к структуре документов, а на этом построены механизмы изоляции работы по настройке для различных пользователей - режим "песочница". Последняя база данных используется исключительно для кэширования данных - Redis. Ниже будут подробно описаны способы взаимодействия с базами данных.
В системе используются следующие базы данных
- SQL-база (MsSql или PostgreSQL). Используется для хранения первичных данных и курсов валют.
Описание работы с SQL базой данных
На данный момент поддерживается работа с MSSQL по протоколу XML и работа с Postgres по протоколу JSON.
API
SetValutaRates (array, done) - запись курсов валют
db.SetValutaRates([{
CodeValutaRate:"...",
CodeValuta:"...",
CodeReportValuta:"...",
CodeReportValuta1:"...",
CodeReportValuta2:"...",
Year:2017,
CodePeriod:"...",
Value:1,
Value1:2,
Value2:3,
CodeUser:"..."
}],function(err){ ... })
SetCells(array,done) - Запись значений ячеек
db.SetCells([
{ CodeCell:"...",CodeUser:"...",Comment:"...",CalcValue:"...",Value:"...",CodeValuta:"..."},
],function(err){
...
});
GetCells(array,array) - получение первичных данных
db.GetCells(['CodeCell','Value','CalcValue'],[{CodeCell:"..."},{CodeCell:"..."}],
function(err,data){...})
GetCellsHistory(array,array) - получение истории изменений первичных данных
db.GetCellsHistory(['CodeCell','Value','CalcValue'],[{CodeCell:"..."},{CodeCell:"..."}],
function(err,data){...})