Вопрос про observer для реляционных баз данных
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
Есть задача.
Допустим есть две программы: «Админ» и «Клиент».
«Админ»:
- Позволяет проводить любые запросы на изменения данных (INSERT, UPDATE, DELETE)
- Изменения схемы базы данных — out of scope данного вопроса
- Можно считать это очень тонкая command-line обертка над INSERT/UPDATE/DELETE
- Условно: любой консольный клиент к базе
«Клиент»:
- Отображает результат произвольно сложного SELECT на экране в виде read-only таблицы
- Реагирует на изменения данных, вносимые «Админом» (добавляет-изменяет-удаляет строки)
- Ограничен в правах доступа (не может менять данные, не имеет доступа к базе за пределами таблиц в SELECT и т.п. principle of least power)
- Запрос для отображения сохраняется в конфигурации к данному инстансу «Клиента»
- Условно: табло прибытий-отправлений поездов на вокзале
Вопрос: как именно реализовать такое? Ограничений на СУБД нет. Думаю над вариантами либо скриптовать СУБД (триггерами, хранимками и т.д.), либо связка «Сервер» + СУБД + кастомный протокол (либо парсинг SQL) между «Сервер»-«Админ» и «Сервер»-«Клиент».
Решал ли кто-нибудь такое в общем случае?
22 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів