117
2.3.2. Характеристика базы данных
Как уже упоминалось ранее в главе о выборе средств программирования,
используемая мной для разработки Системы учета контрольных и экспертно-
аналитических проверок база данных MongoDB, документоориентированная
система управления базами данных с открытым исходным кодом, не требующая
описания схемы таблиц. Классифицирована как NoSQL, использует JSON-
подобные документы и схему базы данных.
Для удобства разработки и маштабирования мною так же используется
Document-Object Mapper - MongoEngine. Он использует простой декларативный
API. Все коллекции описаны классами на языке Python. База данных для моего
приложения в конечном итоге состоит из 5 коллекций (таблиц), однако в коде
Python описана 11 классами, 6 из которых описаны как встроенные документы
(EmbeddedDocument), остальные 5 как основные документы (Document):
1. Класс Roles – роли (Document) (Таблица 3)
2. Класс Users – пользователи (Document) (Таблица 4)
3. Класс ChecksObjects – объекты проверок (Document) (Талица 5)
4. Класс Checks – проверки (Document) (Таблица 6)
5. Класс Classifier – классификатор нарушений (Document) (Таблица 7)
6. Класс ClassifierSide – раздел классификатора (EmbeddedDocument)
(Таблица 8)
7. Класс ClassifierSubSide – подраздел классифкатора (EmbeddedDocument)
(Таблица 9)
8. Класс ClassifierItem – запись классификатора (EmbeddedDocument)
(Таблица 10)
9. Класс repHistory – история изменений и комментариев
(EmbeddedDocument) (Таблица 11)
10. Класс AssignedUsr – пользователи допущенные к проверке
(EmbeddedDocument) (Таблица 12)
11. Класс Offenses – нарушения объектов (EmbeddedDocument) (Таблица 13)