База данных

В системе используются несколько баз данных, что с одной стороны добавляет сложность, но с другой стороны позволяет максимально удобно использовать преимущества различных баз данных. В основе системы располагается sql-база, основное назначение которой - хранение первичных данных. Основные требования к sql базе данных - умение хранить и индексировать большие объёмы данных. Следующий слой MongoDb - объектная база данных. Основное назначение - хранение справочников и настроек системы. Данная база данных используется в связи с её гибким подходом к структуре документов, а на этом построены механизмы изоляции работы по настройке для различных пользователей - режим "песочница". Последняя база данных используется исключительно для кэширования данных - Redis. Ниже будут подробно описаны способы взаимодействия с базами данных.

Описание работы с SQL базой данных

В системе JetCalc используется SQL-база PostgreSQL для хранения первичных данных и курсов валют, в которой взаимодействие осуществляется по протоколу 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){...})

Last updated