Базовая информация о ПО Беижсофт.
* Приведенная информация сложна для незнакомых с программированием, особенно вторая часть.
Программирование информационных моделей сохраняемых в базу данных.
- Это такие модели как Накладная, Контрагент...
- Здесь для краткости используется термин "ИС модель"
Есть два типа ИС моделей: обмениваемые (синхронизируемые) между базами данных и нет.
Обмениваемые между базами данных ИС модели
Обмениваемые модели могут быть созданы в разных базах данных и затем синхронизированы с использованием их явного или неявного кода (идентификатора). Есть два типа обмениваемых ИС моделей:
- модели с глобальным кодом
- модели с автоматически генерируемым кодом и неявный кодом рождения, то есть они имеют идентификатор состоящий из автоматического кода в текущей базе, код базы рождения и код в базе рождения для импортной модели, это более быстрая и кросс-платформенная альтернатива широко используемую ГУИД идентификатору
Пример моделей первого типа из базовой библиотеки beige-blc.jar:
- org.beigesoft.mdlp.Lng - Языки, в качестве кода используется глобальный строковый код, например "en" or "ru"
- org.beigesoft.mdlp.CsvMth - CSV метод, Код длинное целое
- org.beigesoft.mdlp.CsvCl - строка CSV метода, Код длинное целое
Необмениваемые между базами данных ИС модели.
Такие модели не нуждаются в импорте. В любом случае они создаются только в одной базе данных. Данные модели имеют простой автоматически генерируемый код. Пример таких моделей - корзина и ее строки в базе ВЕБ-магазина.
Базовые Беижсофт ОРМ ИС модели.
Любая ИС модель должна иметь идентификатор (код/primary key), версию для экспорта, импорта и блокировки при редактировании. Также имеют поле "isNew" - "новая" для принятия решения создавать в базе данных новую запись или изменить существующую. Базовые модели имеют все эти свойства (поля).
Чтобы сделать вашу модель рабочей для Беижсофт ОРМ, вы должны сделать её потомком базовой ИС модели. В Джава это делается словами "extend" или "implement":
- org.beigesoft.mdl.IHasId - базовый интерфейс
- org.beigesoft.mdl.AIdStr - абстрактная модель с кодом строкового типа String
- org.beigesoft.mdl.AIdLn - абстрактная модель с неавтоматическим кодом числового типа Long
- org.beigesoft.mdl.AIdLnNm - абстрактная модель с неавтоматическим кодом числового типа Long и с полем Nme (Имя)
- org.beigesoft.mdl.AOrId - абстрактная модель с автоматическим кодом и неявный кодом рождения (обмениваемая между БД)
- org.beigesoft.mdl.AOrIdNm - абстрактная модель с автоматическим кодом и неявный кодом рождения (обмениваемая между БД)
- org.beigesoft.mdl.AIdLna - абстрактная модель с автоматическим кодом (необмениваемая между БД)
- ...
- org.beigesoft.mdl.IOwned - базовый интерфейс
- org.beigesoft.mdlp.IOwnedi - интерфейс с неавтоматическим кодом числового типа Long
- org.beigesoft.mdlp.IOwnedOr - интерфейс с автоматическим кодом и неявный кодом рождения (обмениваемая между БД)
- org.beigesoft.mdlp.IOwneda - интерфейс с автоматическим кодом (необмениваемая между БД)
Модели со сложным идентификатором (primary key).
Беижсофт ОРМ поддерживает идентификаторы любой сложности. Например модели из Беижсофт ИСП beige-acc.jar:
- org.beigesoft.ws.mdlp.Deliv - Доставка, код типа перечисление (enumeration)
- org.beigesoft.ws.mdlp.Cart - Корзина имеет идентификатор типа Покупатель (другая ИС модель) (Buyer)
- org.beigesoft.acc.mdlp.WrhItm - номенклатура на складе с тройным идентификатором - Номенклатура (Itm), ЕдиницаИзмерения (Uom), Место в складе (WrhPl), т.е. это одновременно и иностранные ключи, и используются в связке как первичный ключ.