-
Notifications
You must be signed in to change notification settings - Fork 0
diff_01_general
Абырвалг, абырвалг, абырвалг...
Практически каждая вторая из представленных ORM видимо в целях удобства осуществляет привязку к пулу подключений. Связь осуществляется через объект-посредник (реже — через привязку к целевому объекту подключения) рядом с объявлением стуктуры колонок таблицы.
Это имеет смысл, когда с общей функциональностию основного модуля дополнительно импортируются из диалектного модуля сопутствующие элементы, однако для нашего случая, связь синтаксиса с диалектом возложена на подключаемый плагин, а значит осуществить привязку к конкретному поставщику СУБД для общего случая — не представляется возможным.
Вместо привязки свойства принадлежности к пулу подключений, для описаний таблиц предлагается осуществлять общую фасеточную классификацию в едином хранилище мета-информации. При наличии проблем с основным хранилищем такая мера позволяет организовать доступ к резервной базе данных без перегрузки приложения.
То есть в таблице явно не указывается, каким подключением воспользоваться, чтобы получить к ней доступ. Скорей наоборот — в мета-объекте оставляются ссылки на пул-объекты подключений, которые в заданной последовательности подбирают обработчик для обращения к заданному набору таблиц за один запрос.
Обработчики привязаны именно к стуктурам пул-подключений с тем, чтобы при отсутствии сложной логики настройка подключений не была бы сложной задачей. Производимая JOIN-выборка данных может быть преобразована к плану исполнения, в котором используются разные источники.
Разбиение на несколько запросов и связи потока на уровне ORM может приниматься за счет этого же обработчика.