Модель данных

Модель данных - это способ представления в информационной системе той части знаний о реальном мире, которая представляет интерес для целей учёта. Модель включает в себя правила выделения и структурирования знаний, сохранения знаний в базе данных и извлечения информации из БД оптимальным образом.

Структура компании

Торговая организация осуществляет деятельность в торговых точках разных типов: универмаги, магазины, киоски, лотки и т.д. Магазины могут быть разделены на отделы и секции, расположенные, возможно, на разных этажах здания. Для описания всех таких точек вводится единое понятие Подразделение. Поскольку одно подразделение может быть подчинено другому (например, отдел находится в магазине), то появляется задача описания иерархии подразделений или структуры компании. 

image-1640792281692.png

На верхнем уровне иерархии находится запись компании. В базе данных имеется только одна такая запись.

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

Структурное подразделение содержит одно или несколько внутренних подразделений (участков учёта). Появление внутреннего подразделения в схеме определяется необходимостью учёта на данном участке и наличием ответственного за  этот учёт (материально-ответственное лицо).

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

Справочники и классификаторы

Списки данных одного вида хранятся в БД в виде справочников. 

Например, 

  • Справочник товаров содержит информацию обо всех товарах в базе данных
  • Справочник товарных групп и категорий применяются для классификации товаров. Разделение товаров на группы может быть произвольным и определяется удобством работы пользователя
  • В справочнике поставщиков хранятся описания поставщиков товаров

Документы

Документы являются электронными эквивалентами “бумажных” документов.  

В документы заносится самая разнообразная информация. Это могут быть приходные накладные от поставщиков, реализация товаров покупателям, входящие и исходящие счета-фактуры, выставленные счета и коммерческие предложения, заказы от покупателей и заказы к поставщикам, приход (расход) денежных средств на расчётный счёт и в кассу, различные бланки, авансовые отчёты и многое другое. Все то, что необходимо учитывать на предприятии, может быть оформлено в виде документов.

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

Документ обязательно имеет хозяина  того, у кого документ лежит на хранении. В программе хранителем документов является подразделение.

Также в документе указывается контрагент  для кого предназначен документ или кого описывают данные из документа.

Принцип Типизации

Для классификации документов вводится понятие Тип документа. Тип документа указывает на предназначение документа и определяет список параметров, содержание и процедуры обработки документа. 

Примеры типов документов: приход от поставщика, реализация через кассу, списание.

Аналогичный принцип разделения по Типам применяется к торговым партнёрам (поставщики, изготовители, покупатели, банки и т.д.), товарам (обычный товар, услуга).

При создании любого объекта всегда требуется указать его тип. Такое указание может быть сделано разработчиком в проектном решении, либо тип запрашивается у пользователя.

Регистры, проводки, сальдо и другие расчётные данные

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

Например, требуется отобразить текущий остаток товара на складе. Если перебирать все приходы и расходы данного товара за весь период, то на получение ответа придётся потратить значительное время. Поэтому текущий остаток хранится в сальдо. При утверждении документа прихода создаётся запись регистра с фактом увеличения остатка. При утверждении документа расхода создаётся запись регистра с фактом уменьшения остатка. Появление записей в регистре автоматически вызывает изменение сальдо остатка соответствующего товара. И актуальное значение текущего остатка будет быстро выдано по запросу.

Второй пример. Анализ взаиморасчётов с поставщиком. Результаты расчётов хранятся на сальдо 60 счета. Для изменения сальдо применяются проводки. По приходу формируется проводка по 60 счету в части Кредит. По документу оплаты формируется проводка по 60 счету в части Дебет.  Появление проводок в БД автоматически вызывает изменение сальдо 60 счета (дебетовая или кредитовая части).

Прочая специфическая информация для хранения в БД

При необходимости в БД создаются структуры для хранения специфических данных. Формат хранения и методы доступа определяются конкретными решаемыми задачами.