Структура хранения данных в системе

 

База данных физически  представляет собой папку с файлами на компьютере, которая создается разработчиком или пользователем  при первом подключении к системе. Для просмотра папки на диске необходимо вызвать контекстное меню класса и выбрать пункт меню «Открыть папку»:

 

 

При таком способе перехода к папкам данных (с помощью средств ODANT) все изменения, вносимые в папки, будут заноситься на сервер, даже если сервер удаленный.

 

 Внутри папки находятся папки доменов, которые имеют обозначение d.[имя домена] и папка домена корневого уровня DOMAIN:

 

 

  1. Папка d.Develope – папка домена 
  2. Папка d.Work – папка домена 

 

В дальнейшем добавится домен Archive и соответствующая папка d.Archive

 

Отдельно на диске расположена  папка для хранения домена System – папка SYSTEM:

 

 

Это разделение в хранение данных сделано для того, чтобы при удалении БД случайно не были удалены все системные настройки вашего сервера.

  1. Папка DOMAIN –  папка домена корневого уровня -  . Домен представляет собой класс, со стандартным набором папок:

 

 

 

 

В папке CLASS  находится  файл class.ocl, в котором настраивается начальный уровень безопасности корневого домена:

 

 

Настройка начального уровня безопасности заключается в указании, кто является администратором данного хоста, и кому доступ на данный хост запрещен. Администратором может быть либо пользователь (указывается id пользователя),  либо сам сервер (указывается id сервера).  При необходимости смены владельца сервера или хоста просто поменяйте идентификатор на нужный id.

Также администратор может назначать дополнительных администраторов. Для этого необходимо внутри domain_admin прописать нужное количество дополнительных идентификаторов:

 

 

Удалить администратора хоста или домена может только пользователь, который назначил данного администратора, т.е. только администратор верхнего уровня  может удалить внутренних администраторов.

 

Структура папки домена d.[имя домена]

 

Содержание  папки различно для каждого пользователя системы и зависит от личных наработок. 

  1. Перед началом работы с системой, папки доменов содержат одну единственную папку DOMAIN с  описанием домена:

 

 

Описание домена находится в файле DOMAIN/CLASS/ class.ocl, который является, как правило, пустым

 

 

  1. При начале работы в системе ODANT (создание конфигураций, решений, классов, удаление) создаются соответствующие папки поддоменов и архивная папка .removed:

 

Рис.1        

 

Папка .removed  хранит предыдущие версии элементов системы, которые попадают в нее после удаления пользователем в системе.

Вид структуры корневого домена в системе ODANT:

 

 

  1. Папки поддоменов d.[имя поддомена] (на Рис.1 это папки d.Новое и d.Решение) имеют такую структуру, что и папка домена корневого уровня. Только вместо папок поддоменов они содержат папки классов, созданных в этих поддоменах (на Рис.2 папка Класс2):

 

Рис.2        

 

Вид структуры поддомена в системе ODANT:

 

 

Также появляется архивная папка .removed, если производилось удаление данных в системе.

 

Структура папки класса

 

Выглядит следующим образом:

 

Рис.3        

 

Вид структуры в системе ODANT:

 

 

Структура папки класса аналогична структуре папок доменов. Только вместо папок поддоменов (для корневого домена) или классов (для поддоменов) появляются папки дочерних классов (на Рис.3 папка Класс1).

 

Рассмотрим файлы, которые могут находиться в папке CLASS:

 

Описание класса хранится в папке CLASS (аналогично папке DOMAIN для доменов):

 

 

  1.  Полное описание структуры класса хранится в файле class.ocl:

 

 

  1. Файл class.oml является файлом описания статических полей объекта. Создается в папке при описании статических полей класса, один для всех статических полей.

 

 

  1. Файл Ikon.* – графический файл иконки класса. Появляется после установки иконки на значок класса. 

При выборе иконки рекомендуется выбирать иконки размером 32х32 и с расширением .png

  1. Файл help.rtf – файл справки. Создается автоматически после заполнения файла справки через контекстное меню класса – Помощь à Редактировать справку. Также файл может быть создан пользователем и помещен в папку CLASS.

 

Помимо стандартного набора файла в данной папке так же могут находиться файлы, поставляемые непосредственно с модулем от разработчика.

 

Рассмотрим папки, которые могут находиться в папке CLASS:

 

 

  1. Папка bin -  хранит модули, разработанные программистами, *.dll файлы, необходимые для выполнения некоторого функционала соответствующим классом:

 

Также папка bin может содержать еще две папки  - ref и res. В папке  ref находится дополнительные компоненты, которые требуются для работы программного модуля, dll-файлы. В папке res  можно создавать любые файлы, которые требуются для работы модуля (например, текстовые файлы)

  1. Папка backup  хранит архивная версия класса с группировкой по дате после каждого изменения.

При включенном режиме «История изменений» в Конфигураторе класса:

 

 

Система создает файл class. BAK и updates.BAK в папке backup:

 

 

В файле class. BAK  - файл класса, сохраненный до того, как вы включили режим «История изменений».

В файле updates.BAK хранятся все версии класса:

 

 

Важно! При копировании класса не забывайте копировать папку backup.

 

  1.  Папка modules хранит исходный программный код на языке С#, производится полностью отладка модуля. После компиляции модуля, он перемещается в папку bin.

 

 

  1. Папка settings предназначена для хранения различных настроек класса.

 

 

 

  1. Файл editor.xml хранит сохраненный шаблон настроенного внешнего вида объекта:

 

 

 

Рис.4       Часть файла  editor.xml

 

Формируется при настройке интерфейса объектов в ODANT через  вызов функции «Дизайн формы объекта» :

 

 

При сохранении дизайна грида (окно списка объектов класса) через контекстное меню:

 

 

Создается папка view, в которой хранится xml-описание вида грида.

При случайном удалении папки или сбросе настроек после обновления,  вы всегда можете восстановить прежний вид дизайна из папки backup, путем копирования соответствующего файла в рабочую папку.

  1.  Папка data –  хранит непосредственно объекты в файле paсk.OML:

 

 

Данные хранятся в виде иероглифов, т.к. это не чистый XML, а бинарный XML:

 

 

Благодаря такому представлению информации загрузка/выгрузка данных в/из  памяти занимает минимальное время.

В папке objidx  содержатся такие же файлы, как и пакеты, но в них хранятся списки id-ов. Это так называемые индексные файлы, которые позволяют очень быстро находить, какие файлы в каких пакетах находятся. Каждый файл – отдельный пакет.

 

 

Соответствующее разделение данных на пакеты в системе:

 

 

Пакеты в системе настраиваются через Конфигуратор класса Пакеты, окно «Редактор коллекции Pack»:

 

 

Этот механизм пакетирования предназначен для получения быстрого доступа к объекту по id.

Если объекты класса содержат вложенные файлы, например, рисунок, то в папке data будет создана папка files, в которой будут содержаться все файлы объектов класса с разделением по папкам для каждого объекта:

 

 

Причем в папках хранится не только загруженный файл, но и варианты данного файла (preview), запрашиваемые для отображения  в гриде, на сайтах и др.:

 

 

 

  1. Папка index служит для хранения объектов системы в виде индексов. Это позволяет уменьшать сложные объекты (например, товарные накладные, объекты со встроенными списками и т.д.), когда нет необходимости получать данные из объекта целиком, например, при построении отчетов, до нужного состояния, чтобы они быстро загружались. Индексы являются одной из важнейших частей работы системы. Индексы строятся только при обращении к данным с помощью запросов индекса.

Операция удаления папки index абсолютно безопасна, т.к. индексы построятся снова при обращении к данным.

 

Новый индекс создается  следующим способом:

1.      Через Конфигуратор класса  XQuery:

 

 

Раздел XQuery по умолчанию содержит стандартный набор индексов, необходимых для работы нового класса. Для создания собственно индекса нажмите кнопку  и введите название нового индекса в диалоговое окно: