Раздел “Схема”¶
Раздел предназначен для просмотра и редактирования схемы данных.
Warning
Перед внесением каких-либо изменений в схему рекомендуется сделать резервную копию базы данных и убедиться, что пользователи в данный момент не работают с системой.
Раздел разделён на две части. В левой части расположено дерево схемы данных, в правой - область работы с объектами схемы.
В отдельных ветвях дерева содержатся Таблицы, Процедуры, Функции, Миграции и Библиотеки. Каждая из этих ветвей содержит объекты соответствующего типа, разделенные на группы.
Изначально объект не входит ни в одну группу и располагается в узле (без группы). После заполнения поля Группа он будет перемещён в узел с названием, указанным в поле.
Действия, доступные через контекстное меню (вызывается щелчком правой кнопкой мыши по элементу дерева):
Действие | Команда в контекстном меню | Узел |
---|---|---|
Добавить колонку в выделенную таблицу | Добавить физическую колонку | Колонки |
Добавить ссылочную колонку | Добавить комплексную колонку | Колонки |
Добавить первичный ключ | Добавить первичный ключ | Ограничения |
Добавить уникальный ключ | Добавить уникальный ключ | Ограничения |
Добавить индекс | Добавить индекс | Индексы |
Добавить таблицу | Добавить таблицу | Таблицы |
Добавить библиотеку | Добавить библиотеку | Библиотеки |
Добавить миграцию | Добавить миграцию | Миграции |
Добавить хранимую процедуру | Добавить процедуру | Процедуры |
Добавить функцию | Добавить функцию | Функции |
Удалить выделенный объект | Удалить | Созданный объект |
Note
При выборе пункта Добавить в контекстном меню нужной группы, объект будет создан с уже заполненным свойством Группа.
Над деревом схемы находится окно быстрого поиска, при помощи которого можно найти объект по его названию.
В верхней части разделов расположен тулбар с кнопками обновления, сохранения изменений в схеме, экспорта и импорта.
Импорт схемы данных/библиотеки из файла¶
Чтобы импортировать схему данных из файлов, необходимо выбрать Импорт -> Файл схемы… на тулбаре раздела.
Появится диалог выбора основного файла структуры БД формата tsd
. После выбора файла откроется окно с информацией по связанным со схемой библиотекам.
Нажав на x слева от названия библиотеки, её можно исключить из импортируемой схемы. Для подключения дополнительных библиотек нужно нажать на соответствующую кнопку и в файловой системе выбрать папки с файлами библиотек формата tsp
.
После нажатия на кнопку ОК система определит, изменяет ли импортируемая схема БД текущую, и при наличии изменений отобразит их список в соответствующем диалоге.
При нажатии Сохранить система начнёт применять изменения одно за другим. Применяемое изменение подсвечивается жёлтым цветом, успешно применённое изменение - зелёным.
Note
Если при обновлении произошла ошибка, то применение изменений останавливается, и ошибочный шаг подсвечивается красным. Двойной клик по этому шагу покажет диалог с детальным описанием ошибки.
Если к текущей схеме данных требуется импортировать библиотеки, следует воспользоваться кнопкой Импорт -> Файлы библиотек…. Появится диалог выбора папок. Необходимо выбрать папку, в которой есть файлы библиотек формата tsp
. После выбора нужных файлов система отобразит список изменений, которые будут внесены в схему данных. Чтобы подтвердить изменения, нужно нажать Сохранить.
Сохранение схемы данных¶
После внесения каких-либо изменений для сохранения схемы непосредственно в базу данных необходимо нажать на кнопку тулбара Сохранить всё.
В появившемся диалоговом окне будет отображен список изменений. Чтобы подтвердить изменения, нужно нажать Сохранить.
В случае, если изменений в схеме данных не будет найдено, в диалоговом окне будет выведено соответствующее сообщение.
Создание таблиц¶
Для создания таблицы необходимо нажать правой кнопкой мыши по узлу Таблицы и выбрать в контекстном меню пункт Добавить таблицу.
По умолчанию таблица создаётся с именем Table
в узле (без группы). Название таблицы и её группу можно изменить, выбрав таблицу и указав в правой части свойства Название и Группа соответственно.
Также для таблицы можно указать следующие свойства:
- Название – используется при создании карточек и представлений, поэтому его изменение нежелательно.
- Группа – для удобства работы со схемой данных.
- Описание – описание предназначения таблицы.
-
Библиотека - библиотека, в которой будет храниться данная таблица, по умолчанию -
Default
.Important
Для упрощения процесса обновления на новые версии платформы крайне желательно все объекты схемы данных (такие как таблицы, колонки и т.п.), добавляемые и изменяемые в рамках проектного решения, сохранять в отдельной библиотеке. Подробнее библиотеки рассмотрены в разделе Создание библиотек.
-
Используется для типа - тип объекта, с которым ассоциированы данные в создаваемой таблице. Указывается в зависимости от типа объектов системы, для которых предназначена таблица:
Не указан
– тип не определёнКарточки
Задания
Файлы
-
Тип секции – тип данных, хранимых в таблице:
Перечисление
- используется для указания значений вручную в узле Записи. Подробнее о создании данных таблиц можно узнать в Руководстве начинающего разработчика.Строковая
– одиночные записи. На один объект (карточка, задание и т.п.) одна запись в таблице.Коллекционная
– коллекционные записи. На один объект может приходиться несколько записей в таблице.Иерархическая
– иерархические записи. Тоже самое, что и коллекционные, но с поддержкой иерархии записей.
-
Виртуальная – таблица описана в схеме данных, но физически отсутствует в базе данных.
Добавить в таблицу необходимые колонки, ключи и индексы можно, нажав правой кнопкой мыши на нужном узле таблицы и выбрав требуемый пункт в контекстном меню.
После того, как настройка таблицы будет завершена, необходимо её сохранить. Для вызова диалога сохранения схемы можно нажать Ctrl+S.
Создание колонок¶
Колонки используются для задания значений атрибутов схемы и представлены в таблицах как столбцы. Создать колонку можно двух типов: физическую и комплексную.
- Физическая колонка хранит значения, такие как номера или строки.
- Комплексная колонка ссылается на значения и колонки других таблиц, т.е. логически объединяет набор физических колонок. Использование комплексных колонок необходимо для поддержания ссылочной целостности базы данных.
Редактор физической колонки имеет следующие настройки:
- Название - название колонки в БД.
- Описание - произвольное описание колонки.
- Библиотека - библиотека, в которой будет храниться данная колонка, по умолчанию совпадает с библиотекой таблицы.
- Тип – тип данных, хранящихся в колонке, см. таблицу с доступными типами.
-
Значение по умолчанию – значение, записываемое в колонку по умолчанию.
- Для невиртуальных колонок соответствует ограничению
DEFAULT CONSTRAINT
в SQL. - Для всех колонок в таблице с типом секции “Перечисление” также определяет значение, указываемое при добавлении строк в таблицу “Записи”.
- Для иных типов секций определяет значения для созданных, но ещё не сохранённых объектов карточек, файлов и заданий.
- Для невиртуальных колонок соответствует ограничению
-
Виртуальная - признак того, что колонка является виртуальной, т.е. отсутствует в БД, даже если таблица не является виртуальной (если таблица виртуальная, то этот флаг игнорируется).
- Для таблиц с типом секции “Перечисление” позволяет указывать значение в строках таблицы “Записи”, чтобы оно было доступно в редакторе и в метаинформации (через API), но отсутствовало в строках в БД.
- Для иных типов секций указывает, что колонка присутствует в секции объекта (карточка, файла или задания), но ведёт себя так, если бы она была частью виртуальной таблицы: при создании до первого сохранения имеет значение из настройки Значение по умолчанию; при загрузке существующего объекта заполняется как
null
; при сохранении и удалении игнорируется. - Виртуальные колонки возможно использовать не только в строковых, но также и в невиртуальных коллекционных/иерархических секциях в типах карточек, файлов и заданий, и в дочерних секциях, связанных через поле Ссылка на родителя в комплексной колонке, чего нельзя добиться использованием отдельных виртуальных секций.
- Автоинкрементная колонка - признак того, что целочисленная колонка является автоинкрементной, т.е. автоматически увеличивает своё значение для каждой добавляемой строки средствами SQL. Флаг недоступен для колонок, в типе которых не задан целочисленный тип.
- Начальное значение - начальное значение для автоинкрементных колонок при добавлении первой строки. Например, укажите
0
, чтобы значение автоинкрементной колонки отсчитывалось от нуля. Поле недоступно, если не установлен флаг Автоинкрементная колонка. - Шаг - число, на которое увеличивается значение для автоинкрементных колонок при добавлении следующих строк. Например, укажите
1
, чтобы значение автоинкрементной колонки увеличивалось на единицу для каждой следующей строки. Поле недоступно, если не установлен флаг Автоинкрементная колонка. - Правила сравнения строк (MS SQL Server) - указывает для СУБД MS SQL Server правило сравнения и сортировки строк, в т.ч. учитывать ли регистр символов, для колонки строкового типа - см. описание
COLLATION
для СУБД. Например, укажитеCyrillic_General_CS_AS
, чтобы строка в этой колонке подчинялась правилам русского языка с учётом регистра независимо от того, какойCOLLATION
указан для базы данных. - Правила сравнения строк (PostgreSQL) - указывает для СУБД PostgreSQL правило сравнения и сортировки строк для колонки строкового типа - см. описание
COLLATION
для СУБД. Например, укажитеru
, чтобы строка в этой колонке подчинялась правилам русского языка независимо от того, какойCOLLATION
указан для базы данных.
В группе MS SQL Server
указаны дополнительные настройки, специфичные для этой СУБД:
- Идентификатор строки - для колонки с типом Guid определяет признак
ROWGUIDCOL
(актуально для реплицируемых таблиц). - Разреженная - для колонок, тип которых допускает указание
NULL
, определяет признакSPARSE
(оптимизирует хранение таблицы, где известно, что в большинстве строк для этой колонки указано значениеNULL
).
Редактор комплексной колонки имеет следующие настройки:
- Название - префикс для названия физических колонок в БД, которые включены в эту комплексную колонку.
- Например, если комплексная колонка называется
Author
, и она содержит физическую колонкуName
, то эта физическая колонка в БД будет иметь названиеAuthorName
.
- Например, если комплексная колонка называется
- Описание - произвольное описание колонки.
- Библиотека - библиотека, в которой будет храниться данная колонка, по умолчанию совпадает с библиотекой таблицы.
- Тип – определяет, могут ли все колонки, включённые в эту комплексную колонку, иметь значения
NULL
. Также типReference(Abstract)
обозначает, что колонка всегда ссылается на таблицуInstances
(т.е. это ссылка на карточку произвольного типа), тогда как типReference(Typified)
позволяет указать любую таблицу в поле Ссылка на таблицу. - Ссылка на таблицу - таблица, на которую ссылается колонка. Обратитесь к разделу Пример создания поля со ссылкой на поле другой таблицы.
- Справочник нормализации - указывает, что первая строковая колонка внутри комплексной является виртуальной и автоматически заполняется из справочника нормализации для таблицы, которая включена как секция в тип карточки, файла или задания.
- Пример использования доступен в разделе Ссылка на справочник в типе карточки.
- Если колонка расположена в таблице с типом секции “Перечисление”, то это указывает, что строковая физическая колонка внутри комплексной будет виртуальной, и записывает информацию по выбранному справочнику в метаинформацию схемы. Но это не определяет поведение по автоматическому заполнению из справочника, если для конкретной колонки не написан специализированный код, который использует метаинформацию и заполняет значение через API.
- С внешний ключом - признак того, что в таблицу в БД добавляется внешний ключ (
FOREIGN KEY
в SQL), который содержит ключевые колонки, включённые в комплексную колонку (в списке Ссылочные колонки они отмечены как флаги, доступные только для чтения).- Этот признак влияет только на наличие внешнего ключа в БД, его наличие или отсутствие не влияет на поведение связанных контролов, и не изменяет иным образом поведение системы при работе с колонкой.
- Если комплексная колонка отмечена как Виртуальная, то флаг С внешний ключом автоматически снимается без возможности его установить.
- Если комплексная колонка включена в виртуальную таблицу, то наличие этого флага не влияет на поведение системы.
- Ссылка на родителя - указывает, что в комплексной колонке определяется ссылка на идентификатор родительской коллекционной/иерархической секции в типе карточки, файла или задания.
- Не влияет на создание колонки в БД, но влияет на её использование для порядка добавления/удаления строк в связанных секциях.
- Признак обычно используется совместно с контролами “Таблица”, “Представление”, “Список”.
- Признак игнорируется, если комплексная колонка включена в таблицу с типом секции “Перечисление”.
- Виртуальная - признак того, что все физические колонки, включённые в эту комплексную колонку, являются виртуальными (без возможности снять с них флаг Виртуальная).
- Виртуальные колонки, как описано выше, отсутствуют в БД, даже если таблица не является виртуальной.
- Ссылочные колонки - список колонок таблицы, на которую комплексная колонка ссылается в поле Ссылка на таблицу.
- Такие колонки дублируются в таблице, содержащей комплексную колонку, причём имена колонок начинаются с префикса, указанного в поле Название комплексной колонки.
- При наличии связи комплексной колонки с контролом “Ссылка” или “Список” (в типах карточек, файлов, заданий), значения ссылочных колонок будут заполнены при выборе ссылочного значения, как и значения других физических колонок, добавленных в комплексную колонку через контекстное меню на колонке.
- Или если значение очищается в контроле, то значения всех колонок внутри комплексной колонки указываются как
NULL
.
В комплексную колонку через контекстное меню на узле с колонкой возможно добавить физические колонки, поведение которых будет таким же, как и для колонок, выбранных в списке Ссылочные колонки, но для них возможно указать любые настройки с типом, названием (кроме префикса, который соответствует полю Название в комплексной колонке) и др.
При создании физических и комплексных колонок следует внимательно следить за типом значений, которые будут храниться в них. Так, тип целочисленных значений Int16
, в отличие от Int32
, требует меньше памяти для хранения, однако в нем нельзя хранить слишком большие числа (выходящие за диапазон [-32768..32767]
).
Добавление колонки осуществляется при помощи контекстного меню:
Таблица с доступными типами данных для колонок схемы¶
Название | Описание и параметр (в скобках) | Типы в SQL и .NET | Тип в карточках | Контролы в карточках |
---|---|---|---|---|
AnsiString | Строка, закодированная в текущей кодовой странице для базы данных MSSQL, для PostgreSQL используется кодировка UTF-8 аналогично типу String . (Max) - строка неограниченной длины (до 2 Гб текста) |
MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
AnsiStringFixedLength | Строка фиксированной длины, закодированная в текущей кодовой странице для базы данных MSSQL, для PostgreSQL используется кодировка UTF-8 аналогично типу StringFixedLength . Используйте AnsiString , если строки могут иметь меньшую или большую длину, чем указано в типе. Значение (Max) недопустимо |
MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
String | Строка, закодированная в UTF-8. В контролах можно использовать символы Unicode: иероглифы, иностранные буквы, финансовые и математические обозначения и т.д. (Max) - строка неограниченной длины (до 2 Гб текста) |
MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
StringFixedLength | Строка, закодированная в UTF-8. В контролах можно использовать символы Unicode: иероглифы, иностранные буквы, финансовые и математические обозначения и т.д. Используйте String , если строки могут иметь меньшую или большую длину, чем указано в типе. Значение (Max) недопустимо |
MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
Int16 | Целочисленный тип данных. Размер - 16 бит. Этого достаточно для хранения значений не больше 32 767 | MSSQL: PostgreSQL: .NET: |
Int32 |
Выбор цвета Строка Целое число |
Int32 | Целочисленный тип данных. Размер - 32 бита. Этого достаточно для хранения значений не больше 2 147 483 647 | MSSQL: PostgreSQL: .NET: |
Int32 |
Выбор цвета Нумератор Строка Целое число |
Int64 | Целочисленный тип данных. Размер - 64 бита. Подходит для хранения значений, которые выходят за диапазоны типов Int16 и Int32 | MSSQL: PostgreSQL: .NET: |
Int64 |
Нумератор Строка Целое число |
Double | Вещественный тип данных, число с плавающей запятой размером 8 байт | MSSQL: PostgreSQL: .NET: |
Double |
Вещественное число Строка |
Currency | 64-битные целые числа, масштабированные в 10 000 раз для представления числа с фиксированным десятичным разделителем (15 цифр слева от него и 4 цифры справа) | MSSQL: PostgreSQL: .NET: |
Decimal |
Десятичное число Строка |
Decimal | Содержит 128-разрядные (16-байтные) значения со знаком, представляющие 12-байтные целые числа с переменной степенью, кратной 10. Коэффициент масштабирования определяет количество цифр справа от десятичной запятой. Он находится в диапазоне от 0 до 28. (0..29, 0..28 ) - первое число означает число знаков до запятой, второе - после. Сумма значений в скобках не должна превышать 29 |
MSSQL: PostgreSQL: .NET: |
Decimal |
Десятичное число Строка |
Time | Формат времени без даты, занимает от 3 до 5 байт памяти, точность определяется пользователем | MSSQL: PostgreSQL: .NET: |
DateTime |
Дата и время Строка |
Date | Формат даты без времени, занимает 3 байта и предназначен для хранения даты диапазоном от 01.01.0001 до 31.12.9999 |
MSSQL: PostgreSQL: .NET: |
DateTime |
Дата и время Строка |
DateTime | Стандартный тип данных для хранения даты и времени. Занимает в памяти 8 бит в MSSQL: 4 для хранения даты и 4 - для хранения времени | MSSQL: PostgreSQL: .NET: |
DateTime |
Дата и время Строка |
DateTime2 | Формат времени-даты, представленный MS SQL Server 2008. Для MSSQL предоставляет большую точность, чем тип DateTime ; для PostgreSQL отличий нет |
MSSQL: PostgreSQL: .NET: |
DateTime |
Дата и время Строка |
DateTimeOffset | Тип данных, который, помимо даты и времени, хранит также информацию о смещении временной зоны, по которому было установлено текущее время | MSSQL: PostgreSQL: .NET: |
DateTimeOffset |
Дата и время Строка |
Boolean | Логический тип данных | MSSQL: boolean .NET: bool |
Boolean |
Флажок Строка |
Binary | Бинарные данные. (Max) - данные неограниченной длины. Вместо (Max) можно указать максимальную длину строки от 1 до 8000 |
MSSQL: PostgreSQL: .NET: |
Binary |
Строка |
Guid | Тип, предназначенный для хранения уникальных идентификаторов UUID/Guid |
MSSQL: PostgreSQL: .NET: |
Guid |
Строка |
Xml | Содержит код в xml-разметке | MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
Json | Содержит точную копию введённых JSON-данных с сохранением форматирования | MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
BinaryJson | Содержит JSON-данные, хранящиеся в бинарном виде, без сохранения форматирования для PostgreSQL (для MSSQL не отличается от Json). Поддерживает индексацию в PostgreSQL и в MS SQL Server 2016+ | MSSQL: PostgreSQL: .NET: |
String |
Нумератор Строка Текст Текст с форматированием |
Reference | Тип, доcтупный только комплексным колонкам. ReferenceTypified определяет ссылку на любую указанную таблицу, а ReferenceAbstract - только на таблицу Instances |
Сохраняются типы колонок таблицы, на которую ссылается | Object |
Ссылка |
Note
Значение в столбце Тип в карточках определяет, какой тип колонка будет иметь в метаинформации карточек, а именно в перечислении CardMetadataRuntimeType
. По нему можно определить, что в структуре карточек некоторые поля секций, связанные с колонками, будут иметь одинаковые типы и поведение, несмотря на физическое различие в способе хранения в БД.
Important
При использовании типов данных следует учесть следующие моменты:
- Типы
Byte
иSByte
не должны использоваться, потому что в PostgreSQL есть двухбайтовый аналогint2
, и их использование в рамках одного пула данных приведёт к разному поведению при загрузке типов из базы в серверном коде (тип данныхshort
илиbyte
в зависимости от СУБД). - Беззнаковые типы
UInt16
,UInt32
иUInt64
не должны использоваться, поскольку в PostgreSQL вместо них имеются только знаковые. - Тип
Single
не должен использоваться, поскольку это число с плавающей запятой и низкой точностью, что приводит к потерям точности при операциях со значением, при этом размер поля в байтах незначительно ниже, чемDouble
. - Для хранения денежных сумм вместо
Double
должен использоваться типDecimal
, поскольку эти типы не имеют потерь точности при операциях. Например, типDecimal(18,2)
является достаточным для надёжного хранения любых сумм в большинстве случаев (18 знаков до запятой и 2 знака после запятой). - Тип данных
Currency
соответствует типуmoney
в MSSQL и в PostgreSQL, причём для каждой СУБД максимальные значения и точность отличаются. Чтобы однозначно указать эти параметры, следует использовать типDecimal
.
Пример создания таблицы для хранения значений перечисления¶
Данная таблица нужна для хранения списка записей, из которых потом в поле карточки пользователь сможет выбрать какую-либо одну.
Шаг 1: Создание таблицы со свойствами Используется для типа - Не указан
и Тип секции - Перечисление
.
Шаг 2: Добавление в таблицу колонки с первичным ключом, колонки с названием элементов перечисления и других необходимых полей.
Шаг 3: Добавление в таблицу первичного ключа (в данном примере ключевое поле – JustID
).
Чтобы задать ключевое поле, в разделе Индексируемые колонки из выпадающего списка нужно выбрать требуемое поле и далее нажать на кнопку +.
Шаг 4: Сохранение созданной таблицы с помощью сочетания клавиш Ctrl+S.
Шаг 5: Заполнение значений перечисления в разделе Записи.
Чтобы добавить запись, нужно нажать на кнопку Добавить строку, заполнить пустое поле (необходимо выделить поле левой кнопкой мыши и ввести значение) и нажать Enter.
Чтобы удалить запись, нужно выделить строку (щелчком левой кнопки мыши по полю записи) и нажать Delete.
Шаг 6: Сохранение добавленных записей с помощью сочетания клавиш Ctrl+S.
Пример создания поля со ссылкой на поле другой таблицы¶
Данный тип поля позволит хранить в таблице ссылку на другую таблицу (справочник, перечисление, список объектов, и др.).
Колонка таблицы для значений, которые будут хранить такие ссылки, должна быть комплексной. После добавления комплексной колонки нужно задать её Тип - Reference (Typified)
.
В выпадающем списке Ссылка на таблицу можно выбрать, куда будут ссылаться поля колонки.
После внесения изменений их необходимо сохранить с помощью сочетания клавиш Ctrl+S.
Пример создания автоинкрементной колонки¶
Данная настройка позволяет создавать автоинкрементные колонки, значения для которых определяются СУБД автоматически. Для этого в свойствах физической колонки нужно отметить флаг Автоинкрементная колонка, задать целочисленный Not Null
Тип и выбрать Начальное значение и Шаг, с которым выделяются следующие значения. Если в настройках колонки эти значения не заданы, то используются значения по умолчанию (1 для начального значения и 1 для шага). Отрицательные значения шага позволяют сделать убывающий список.
Для создания автоинкрементной колонки для таблицы должны быть выполнены следующие условия:
- У колонки не должно быть задано значение по умолчанию.
- Таблица не должна иметь записей в схеме данных.
Important
Для СУБД MSSQL для одной таблицы может быть создана только одна автоинкрементная колонка.
При указании настройки Автоинкрементная колонка или изменении ее настроек для созданной колонки с таблицей, в которой есть данные, следует учитывать, что поведение будет различно для разных СУБД:
- MSSQL: все данные колонки затрутся и заполнятся новыми, в соответствии с настройками автоинкремента.
- PostgreSQL: данные колонки сохранятся, однако взятие следующего значения будет производиться с начала (начальное значение).
Important
В случае, если данная колонка использовалась как первичный ключ или по ней настроен уникальный индекс, изменение/установка автоинкремента для колонки может привести к ошибкам при добавлении значений в данную строку.
Процедуры¶
Хранимые процедуры, которые могут быть заданы в схеме для последующего использования. По сути, это обычные хранимые процедуры в БД со всеми вытекающими отличиями от функций.
Редактор хранимых процедур имеет следующие настройки:
- Название - название процедуры. Должно быть уникальным и совпадать с названием, указанным в запросе. При изменении названия в запросе, значение этого поля автоматически изменится.
- Группа – нужна для удобства работы со схемой данных (процедура будет отображаться в другой группе сразу после изменения поля).
- Описание – описание предназначения процедуры.
- Библиотека - библиотека, в которой будет храниться данная процедура, по умолчанию -
Default
. - Выполнять до модификации таблиц - по умолчанию запросы на создание процедур выполняются после импорта таблиц, если нужно выполнить запрос для конкретной процедуры до импорта таблиц, необходимо установить данный флаг.
- Порядок выполнения - число, которое является сквозным для процедур, функций и миграций. Если для прочих объектов установлен порядок
0
, то создание процедуры с порядком-1
будет выполняться перед ними, но после импорта таблиц (если не установлен соответствующий флаг). Если порядок равен1
, создание процедуры произойдёт гарантированно после объектов с более низким порядком. Создание процедур с одинаковым порядком выполняется в неопределённом порядке. - СУБД - селектор, который определяет редактор запроса для какой СУБД отображается в данный момент.
- Редактор запроса - позволяет описать запрос для создания процедуры на MSSQL или PostgreSQL, в зависимости от того, какая СУБД выбрана в селекторе СУБД в данный момент.
Функции¶
SQL-функции, которые могут быть заданы в схеме для последующего использования в решении.
Функции так же, как и хранимые процедуры, имеют абсолютно аналогичные настройки в схеме.
- Название - название функции. Должно быть уникальным и совпадать с названием, указанным в запросе. При изменении названия в запросе, значение этого поля автоматически изменится.
- Группа – нужна для удобства работы со схемой данных (функция будет отображаться в другой группе сразу после изменения поля).
- Описание – описание предназначения функции.
- Библиотека - библиотека, в которой будет храниться данная функция, по умолчанию -
Default
. - Выполнять до модификации таблиц - по умолчанию запросы на создание функций выполняются после импорта таблиц, если нужно выполнить запрос для конкретной функции до импорта таблиц, необходимо установить данный флаг.
- Порядок выполнения - число, которое является сквозным для процедур, функций и миграций. Если для прочих объектов установлен порядок
0
, то функция с порядком-1
будет выполняться перед ними, но после импорта таблиц (если не установлен соответствующий флаг). Если порядок равен1
, создание функции произойдёт гарантированно после объектов с более низким порядком. Создание функций с одинаковым порядком выполняется в неопределённом порядке. - СУБД - селектор, который определяет редактор запроса для какой СУБД отображается в данный момент.
- Редактор запроса - позволяет описать запрос для создания функции на MSSQL или Postgres, в зависимости от того, какая СУБД выбрана в селекторе СУБД в данный момент.
Миграции¶
Миграции это SQL-скрипты, которые выполняются при импорте схемы один раз, а также повторно при каждом импорте, при котором SQL-текст миграции как-либо менялся.
Миграции имеют схожие настройки с процедурами, но с некоторыми отличиями:
- Название – название миграции. Никак не фигурирует в теле запроса, в отличие от процедур и функций.
- Группа – группа нужна для удобства работы со схемой данных (миграция будет отображаться в другой группе сразу после изменения поля).
- Описание – описание предназначения миграции.
- Библиотека – библиотека, в которой будет храниться данная миграция, по умолчанию -
Default
. - Выполнять без транзакции – по умолчанию выполнение SQL миграции происходит внутри транзакции. Для создания типов и прочих изменений, связанных с изменением структуры данных в БД, транзакцию необходимо выключить этим флагом.
- Выполнять до модификации таблиц – по умолчанию миграции выполняются после импорта таблиц, если нужно выполнить миграцию до импорта таблиц, необходимо установить данный флаг.
- Порядок выполнения – число, которое является сквозным для процедур, функций и миграций. Если для прочих объектов установлен порядок
0
, то миграция с порядком-1
будет выполняться перед ними, но после импорта таблиц (если не установлен соответствующий флаг). Если установить порядок1
, то выполнение миграции произойдёт гарантированно после объектов с более низким порядком. Если оставить порядок0
, то миграция будет выполняться после импорта процедур и функций с порядком0
. Миграции с одинаковым порядком выполняются в неопределённом порядке. - СУБД – селектор, который определяет редактор запроса для какой СУБД отображается в данный момент.
- Редактор запроса – позволяет описать запрос миграции на MSSQL или PostgreSQL, в зависимости от того, какая СУБД выбрана в селекторе СУБД в данный момент.
Создание библиотек¶
Библиотеки могут использоваться для разработки изолированных решений и далее подключаться к основной схеме данных.
Important
Для упрощения процесса обновления на новые версии платформы крайне желательно все объекты схемы данных (такие как таблицы, колонки и т.п.), добавляемые и изменяемые в рамках проектного решения, сохранять в отдельной библиотеке.
Библиотека хранится отдельно от основной схемы и описывает:
- Новые таблицы (с колонками, ключами, индексами и записями)
- Новые колонки в таблицах основной схемы
- Новые индексы в таблицах основной схемы
- Новые ограничения (constraints) в таблицах основной схемы
- Новые предопределенные строки в таблицах-перечислениях основной схемы
- Новые миграции
- Новые функции
- Новые процедуры
Создать новую библиотеку можно с помощью контекстного меню узла Библиотеки.
Для новой библиотеки указывается уникальное название и, при необходимости, описание.
После создания библиотеки объекты схемы можно перенести в неё: таблицы, колонки, записи, функции и т.д.:
После внесения изменений схему данных необходимо сохранить.
Tip
Все объекты, добавляемые и изменяемые в библиотеке, сохраняются в папку с именем, соответствующим имени библиотеки. Это позволяет изолированно обновлять или переносить библиотеку между разными версиями платформы и проектными решениями.
Посмотреть все объекты схемы, относящиеся к какой-либо библиотеке можно с помощью специального фильтра, расположенного в верхней части окна. После выбора в выпадающем списке библиотеки в дереве будут отображены только те объекты, которые относятся к данной библиотеке.