Skip to content
do- edited this page Jan 21, 2018 · 2 revisions

Каждое Dia-приложение хранит подавляющее большинство своих данных в одной реляционной БД.

Никаких ограничений на число связей с дополнительными источниками данных нет, но если, к примеру, в рамках одного проекта требуется реализовать по 100-120 SQL-запросов к каждой из 5 разных БД, которые нельзя объединить хотя бы на уровне db link'ов, то стоит с самого начала выбрать не Dia.pm, а иную платформу.

Итак, для Dia-приложения есть главная, родная, БД (координаты которой определяются в зарезервированной части back/conf/elud.json, см. $preconf) и есть всё остальное. В рамках подключения к главной БД можно использовать процедурный API, где база (или связь с ней) как переменная не упоминается вообще.

Тем не менее, такая переменная типа DBI всюду определена, она называется $db.

В норме в начале обработки каждого запроса handler:

  • вызывает sql_reconnect, что позволяет выявить/исправить проблемы подключения;
  • при непустом $_REQUEST {action} - открывает транзакцию.
Необходимость использовать $db напрямую в прикладном коде случается крайне редко, но когда такое происходит -- её можно использовать без каких-либо ограничений.

Clone this wiki locally