Описание предметной области система предлагает формулировать путем перечисления справочников, развязочных таблиц, документов, итогов и скриптов, обрабатывающих различные события.
Для хранения статических редко изменяющихся данных предназначены справочники и развязочные таблицы. Не будет чересчур грубым их представление просто в виде таблиц.
Это одни из самых простых объектов в системе. Например, список товаров продаваемых или производимых компанией – хороший пример для реализации в виде справочника.
Как только в систему вносится описание нового справочника (его имя, набор полей и т.д.), разработчик сразу получает в свое распоряжение форму для списка записей справочника и форму для редактирования его записей. Это позволяет быстро перейти к реализации прочей логики, не теряя время на разработку интерфейса. Для реализации связи многие-ко-многим предназначены развязочные таблицы. Описание свойств развязочной таблицы позволяет системе автоматически сгенерировать и предложить пользователю или разработчику готовый интерфейс для управления данными.
К более сложным объектам относятся документы и итоги.
Документы содержат информацию о некоем событии в предметной области (например, продаже товара).
Документы – составные объекты, в отличие от справочников. Каждый документ состоит из общей шапки (набора полей, который есть в любом документе системы), шапки – набора полей, который есть только в данном документе, и набора табличных частей (возможно пустого, а возможно и нет – количество табличных частей для одного документа не ограничено, это сильно упрощает формулирование сложной бизнес-логики).
Табличная часть позволяет сохранить список записей внутри одного документа (товарные строки, как наиболее востребованный, но далеко не единственный пример). С документами тесно связано понятие итога.
Итог – это объект системы, который позволяет описать измеряемый показатель предметной области и хранить историю его изменения. Итог можно также представлять в виде многомерного куба: в системе используется та же терминология – измерения и переменные. Таким образом, документ сохраняет информацию о событии и преобразует свои данные в набор изменений итогов. Пример итога – остатки товаров на складах. Это объект системы, который хранит информацию о том, какое количество товара осталось на каждом из складов. Соответственно, документ продажи уменьшает значение итога остатки товаров на складах (для товаров из документа).
Далее будет использоваться следующая терминология:
•справочник (синоним для тип справочника) – тип справочника задает набор полей и прочие свойства;
•запись справочника – конкретная строка (или конкретный объект системы) справочника;
•развязочная таблица (синоним для тип развязочной таблицы) – аналогично справочнику определяет, какие поля есть в развязочной таблице;
•тип документа – описание набора полей шапки документа и прочих свойств;
•документ – один конкретный документ, содержащий информацию об одном событии.