История изменения актуальных значений в простых атрибутов
Для получения данных по созданию, удалению и изменению значений простых атрибутов, следует использовать следующие view с объединением через union all:
rpt_last_created_actual_values – в данной view содержаться записи действующих актуальных значений атрибутов, которые первоначально были введены пользователем взамен пустого значения в единичном атрибуте или добавлены в множественном атрибуте;
rpt_last_changed_actual_values – в данной view содержаться записи действующих исторических значений атрибутов, в которых отражено последнее выполненное изменение значения атрибута;
rpt_obsolete_created_values – в данной view содержаться записи архивных актуальных и исторических значений, которые были впервые добавлены пользователем. Чтобы получить только актуальные значения, требуется наложить фильтр на записи: (new_validthru is null);
rpt_obsolete_changed_values – в данной view содержатся записи архивных актуальных и исторических значений, которые появились в результате изменения одного значения атрибута на другое. Чтобы получить только актуальные значения, требуется наложить фильтр на записи: (old_validthru is null);
rpt_obsolete_deleted_values – в данной view содержатся записи архивных актуальных и исторических значений, которые были удалены пользователем. Чтобы получить только актуальные значения, требуется наложить фильтр на записи: (old_validthru is null);
Для получения консолидированного представления по истории изменения актуальных значений атрибута, необходимо выполнить запрос:
select *, 1 as action_type -- создание значения
from rpt_last_created_actual_values
union all
select *, 1 as action_type -- создание значения
from rpt_obsolete_created_values where (new_validthru is null)
union all
select *, 2 as action_type -- изменение значения
from rpt_last_changed_actual_values
union all
select *, 2 as action_type -- изменение значения
from rpt_obsolete_changed_values where (old_validthru is null)
union all
select *, 3 as action_type -- удаление значения
from rpt_obsolete_deleted_values where (old_validthru is null)
Для получения информации о значениях атрибута, которые были после создания позиции, необходимо использовать следующие view: rpt_initial_actual_values и rpt_obsolete_initial_values.
Поля для всех перечисленных выше view полностью идентичны и описаны в таблице ниже.
Наименование поля
Тип данных
Описание поля
Ссылка на таблицу
descriptor
bigint
Дескриптор позиции
item_id
bigint
Идентификатор позиции, для которой было изменено значение атрибута
rpt_m2_item.id
propertyid
bigint
Идентификатор атрибута связи, для которого было изменено значение
rpt_m2_aggregation.id
transactionid
bigint
Идентификатор транзакции, в рамках которой было изменено значение атрибута
rpt_m2_transaction.id
old_bool
boolean
Старое значение атрибута
new_bool
boolean
Новое значение атрибута
old_local_date
date
Старое значение атрибута
new_local_date
date
Новое значение атрибута
old_int
integer
Старое значение атрибута
new_int
integer
Новое значение атрибута
old_str
character varying(500)
Старое значение атрибута
new_str
character varying(500)
Новое значение атрибута
old_dblstr
character varying(255)
Старое значение атрибута
new_dblstr
character varying(255)
Новое значение атрибута
old_valuedbl
double precision
Старое значение атрибута
new_valuedbl
double precision
Новое значение атрибута
old_valuedblmin
double precision
Старое значение атрибута
new_valuedblmin
double precision
Новое значение атрибута
old_valuedblmax
double precision
Старое значение атрибута
new_valuedblmax
double precision
Новое значение атрибута
old_blob_id
bigint
Старое значение атрибута
new_blob_id
bigint
Новое значение атрибута
old_valuetext
bigint
Старое значение атрибута
new_valuetext
bigint
Новое значение атрибута
changedate
bigint
Дата изменения значения атрибута связи
account_id
bigint
Идентификатор пользователя, который изменил значение