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