4.13 Использование БД для хранения библиотек виджетов и проектов
Все данные концепции СВУ должны храниться в БД. Это позволит гибко распространять и использовать данные СВУ, выбирая наиболее подходящую случаю БД из списка поддерживаемых системой OpenSCADA. Проекции основных таблиц запишем таким образом :
- Libs( ID, NAME, DSCR, DB_TBL, ICO ) -- Библиотеки виджетов <ID>.
ID -- идентификатор;
NAME -- имя;
DSCR -- описание;
DB_TBL -- БД с виджетами;
ICO -- закодированное (Base64) изображение иконки библиотеки.
- LibWigets( ID, ICO, PARENT, PROC, PROC_PER, USER, GRP, PERMIT, ATTRS) -- Виджеты <ID> библиотеки.
ID -- идентификатор;
ICO -- закодированное (Base64) изображение иконки виджета;
PARENT -- адрес виджета основы в виде /wlb_originals/wdg_Box ;
PROC -- внутренний сценарий и язык сценария виджета;
PROC_PER -- периодичность вычисления сценария виджета;
USER -- владелец виджета;
GRP -- группа пользователей виджета;
PERMIT -- права доступа к виджету;
ATTRS -- перечень атрибутов виджета, модифицированных пользователем.
- LibWidgetIO( IDW, ID, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) -- Рабочие атрибуты <ID> виджета <IDW>.
IDW -- идентификатор виджета;
ID -- идентификатор IO;
IO_VAL -- значение атрибута;
SELF_FLG -- внутренние флаги IO;
CFG_TMPL -- шаблон элемента конфигурации, основанного на данном атрибуте;
CFG_VAL -- значение элемента конфигурации (ссылка, константа ...).
- LibWidgetUserIO( IDW, ID, NAME, IO_TP, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) -- Пользовательские атрибуты <ID> виджета <IDW>.
IDW -- идентификатор виджета;
ID -- идентификатор IO;
NAME -- имя IO;
IO_TP -- тип и главные флаги IO;
IO_VAL -- значение IO;
SELF_FLG -- внутренние флаги IO;
CFG_TMPL -- шаблон элемента конфигурации, основанного на данном атрибуте;
CFG_VAL -- значение элемента конфигурации (ссылка, константа ...).
- LibWidgetIncl( IDW, ID, PARENT, ATTRS, USER, GRP, PERMIT ) -- Включенные в контейнер <IDW> виджеты <ID>.
IDW -- идентификатор виджета;
ID -- идентификатор экземпляра вложенного виджета;
PARENT -- адрес виджета основы в виде /wlb_originals/wdg_Box ;
ATTRS -- перечень атрибутов виджета, модифицированных пользователем;
USER -- владелец виджета;
GRP -- группа пользователей виджета;
PERMIT -- права доступа к виджету.
- LibWidgetMime( ID, MIME, DATA ) -- Audio, video, media и другие ресурсы виджетов библотеки.
ID -- Идентификатор ресурса.
MIME -- Mime тип данных ресурса (в формате - <mimeType;Size>).
DATA -- Данные ресурса кодированные Base64.
- Project( ID, NAME, DSCR, DB_TBL, ICO, USER, GRP, PERMIT, PER, FLGS ) -- Проекты интерфейсов визуализации <ID>.
ID -- идентификатор проекта;
NAME -- имя проекта;
DSCR -- описание проекта;
DB_TBL -- БД со страницами проекта.
ICO -- закодированное (Base64) изображение иконки проекта;
USER -- владелец проекта;
GRP -- группа пользователей проекта;
PERMIT -- права доступа к проекту;
PER -- периодичность вычисления проекта;
FLGS -- флаги проекта.
- ProjPage( OWNER, ID, ICO, PARENT, PROC, PROC_PER, USER, GRP, PERMIT, FLGS, ATTRS ) -- Страницы <ID> содержащиеся в проекте/странице <OWNER>.
OWNER -- проект/страница - владелец данной страницы (в виде - "/AGLKS/so/1/gcadr")
ID -- идентификатор страницы;
ICO -- закодированное (Base64) изображение иконки страницы;
PARENT -- адрес виджета основы страницы в виде /wlb_originals/wdg_Box ;
PROC -- внутренний сценарий и язык сценария страницы;
PROC_PER -- периодичность вычисления сценария виджета;
USER -- владелец страницы;
GRP -- группа пользователей страницы;
PERMIT -- права доступа к странице;
FLGS -- флаги страницы;
ATTRS -- перечень атрибутов виджета, модифицированных пользователем.
- ProjSess( IDW, ID, IO_VAL ) -- Таблица проекта <IDW> для хранения данных сеансов, исполняющих проект.
IDW -- полный путь элемента проекта;
ID -- атрибут элемента;
IO_VAL -- значение атрибута.
- ProjPageIO( IDW, ID, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) -- Рабочие атрибуты страниц. Структура фактически совпадает с таблицей LibWidgetIO.
- ProjPageUserIO( IDW, ID, NAME, IO_TP, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) -- Пользовательские атрибуты страниц. Структура фактически совпадает с таблицей LibWidgetUserIO.
- ProjPageWIncl( IDW, ID, PARENT, ATTRS, USER, GRP, PERMIT ) -- Включенные на страницы виджеты. Структура фактически совпадает с таблицей LibWidgetIncl.