Создание таблиц

Для реализации логической схемы, изображенной выше, необходимо создать следующие таблицы.

Таблица категорий (B_Category)

Таблица категорий предназначена для хранения категорий расходов (напр. Развлечения или Питание) и доходов (напр. Запрлата или Стипендия) и будет два поля:

Имя поля Тип Комментарий
ID Integer Уникальный идентификатор категории (первичный ключ)
Name String Наименование категории

Для создания новой таблицы необходимо вызвать контекстное меню в окне проекта и выбрать "New->Table".

Создание новой таблицы

В панели свойств переименуем таблицу в "B_Category".

Теперь необходимо задать поля таблицы. Для этого необходимо раскрыть узел таблицы и вызвать контекстное меню для узла "Fields" и выбрать "New->[Необходимый тип]".

В таблице B_Category необходимо создать два поля ID (тип Integer) и Name (тип String).

Поля таблицы

Для указания длинны наименования в свойстве StringSize поля Name зададим число 100.

В MorphX существует возможность создания расширенных типов данных (Extended Data Types) - специальных типов данных, основанных на примитивных типах MorphX. Создание таких типов позволяет изменить определяемое системой поведение примитивных типов.

Для поля B_Category.ID, которое выступает в качестве первичного ключа таблицы, необходимо создать расширенный тип данных на основе Integer. Расширение типа Integer заключается в создании нового отношения (relation).

Чтобы создать такое отношения необходимо вызвать контекстное меню "New->Integer" и задать имя - "B_CategoryID".

Создание нового отношения

Далее необходимо вызвать контекстное меню для узла "Relation" и выбрать пункт "New -> Normal", после чего отредактировать свойства отношения через панель свойств таким образом, как показано на рисунке.

Свойства отношения

Теперь, когда создан расширенный тип B_CategoryID, необходимо установить расширенный тип данных (Extended Data Types) для поля B_Category.ID.

Установка Extended Data Types

 

Таблица аналитики (B_Analytics)

Таблица аналитики предназначена для хранения более детального разворота категорий. Например для категории Развлечения аналитикой могут служить - Кафе или Боулинг, а для Питание - Мясо или Соки.

Аналогичным образом создадим таблицу "B_Analytics" со следующими полями.

Имя поля Тип Комментарий
ID Integer Уникальный идентификатор аналитики (первичный ключ)
CategoryID Integer Уникальный идентификатор категории которой принадлежит аналитика (вторичный ключ)
Name String Наименование аналитики

После создания всех полей нужно не забыть для поля B_Analytics.CategoryID значение свойства ExtendedDataType выставляется равным B_CategoryID. А также неободимо создать новый ExtendedDataType с именем B_AnalyticsID со значением B_Analytics.ID и установить его в соответствующее свойство поля B_Analytics.ID.

В результате должна появиться следующая картинка.

Создание таблицы B_Analytics

 

Таблица авторов (B_Autor)

Таблица авторов предназначена для хранения авторов того или иного движения денежных средств.

Аналогичным образом создадим таблицу "B_Autor" со следующими полями.

Имя поля Тип Комментарий
ID Integer Уникальный идентификатор автора (первичный ключ)
Name String Имя автора

После создания всех полей нужно не забыть создать новый ExtendedDataType с именем B_AutorID со значением B_Autor.ID и установить его в соответствующее свойство поля B_Autor.ID.

 

Основная таблица (B_Register)

Основная таблица предназначена для хранения данных о приоде или расходе денежных средств. Но перед тем как создавать данную таблицу нам понадобятся два новых базовых типа.

Для создания нового базового типа необходимо вызвать контекстное меню в окне проекта и выбрать "New->Base Enum". Таким образом создадим следущие типы.

Имя базового типа Имена элементов перечисления
B_Process Credit/Debet (Приход/Расход)
B_Plan Plan/Fact (План/Факт)

В результате должна появиться следующая картинка.

Создание базовых типов (перечислений)

Далее по аналогии создадим таблицу "B_Register" со следующими полями.

Имя поля Тип Комментарий
ID Integer Уникальный идентификатор записи (первичный ключ)
Plan Enum Признак записи - план или факт
DateRecord Date Дата записи
AnalyticsID Intreger Идентификатор аналитики (вторичный ключ)
Summa Real Сумма
AutorID Intreger Идентификатор автора (вторичный ключ)
CD Enum Признак записи - приод или расход

После создания таблицы и всех полей необходимо в свойстве EnumType полей Plan и CD установить значения B_Plan и B_Process соответственно. А также для полей AutorID и AnalyticsID правильно заполнить свойство ExtendedDataType.

Теперь все необходимые таблицы созданы и наш проект должен выглядеть следующим образом.

Создание таблицы B_Register

 

Настройка дополнительных правил

Т.к. на каждую их вышеописанных таблиц будут ссылаются другие таблицы, поэтому необходимо определить правила для удаления записей из этих таблиц. Эти правила создаются в узле "DeleteActions" каждой их таблиц.

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

На таблицу B_Category ссылается таблица B_Analytics, поэтому для B_Category создадим правило удаления Restricted таким образом, как это показано на рисунке.

Создания правил удаления записей

Аналогичные правила создадим для таблиц B_Autor и B_Analytics.

 

Группы объектов

Для более удобной работы с объектами проекта - можно их объединять в группы.

Для создания новой группы необходимо вызвать контекстное меню в окне проекта и выбрать "New->Grpup", после чего мышью перетащить объекты проекта в разные группы. Я, например, сделал группы Tables и Types.

Группы объектов

Скачать У кого не получилось все сделать самостоятельно - можно загрузить файл готового проекта здесь (3 Кб).

Автор: Андрей Михайлов aka MAV

...Шаг 7 | Содержание | Шаг 7.2...