О системе
О компании
Цены
Наши статьи
Наши клиенты
ООО «Результат»
Введение
ORM или ДОБД
Стереотипы поведения и навыки адаптации объектов в документоориентированной БД
ДОБД на SQL
Доменный принцип построения системы
Иерархия документов в журнале
Пример построения сложной СЭД на основе RSF

Объекты без ORM

ORM – это надстройка над РБД, позволяющая программисту строить более осмысленную систему на основе объектов, сосредоточив внимание на манипуляциях с объектами и описанием их поведения как реакции на воздействия. К недостаткам ORM следует отнести то, что инструмент этот неуклюжий, неудобный, негибкий и бесперспективный:

  • При наследовании класса в дополнении к таблице базового класса создается дополнительная таблица. Объект расползается по двум (или более) таблицам.
  • Пустые атрибуты объекта все равно присутствуют в базе.
  • Добавление атрибутов в описание класса требует изменения структуры БД.
  • Удаление атрибутов из описания класса невозможно, т.к. вызовет потерю информации в БД.
  • Невозможно использовать внешние программные модули, которые могли бы добавить к существующему объекту свои собственные атрибуты.

Более гибким инструментом является ДОБД. Единственный его недостаток – это неудачное название. Программисты ничего не понимают в документах и страшное слово их пугает. В данном случае документ – это набор атрибутов конкретного объекта, имеющего уникальный идентификатор (UNID). Атрибуты хранятся в виде ключ:значение.
Ключ – это название поля, в качестве значения может быть строка или JSON-строка (хотя, пользы от JSON мало, а обработка сложнее).
Ссылки на справочники запрещены – объект после создания должен быть самодостаточен и не должен зависеть от других таблиц. Единственные разрешенные ссылки – это ссылки на другие объекты (документы) и на файлы.
Ссылки на объекты представляют собой иерархический путь к хранилищу объектов и UNID объекта.
Ссылки на файлы – это атрибуты файла и UNID файла. Сам файл может храниться в таблице блобов или в файловой системе.


UNID – уникальный идентификатор (он же UUID, он же GUID).
Блоб (blob) – двоичный большой объект.




Яндекс.Метрика