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