Есть идея создать web-приложение, не суть важно какое, где вся логика работы с данными (API, Restful, CRUD) не будет вынесена за пределы базы данных. Т.е. всю бизнес-логику оставляем внутри базы, пишем на innoDB-триггерах, SQL-процедурах и SQL-функциях. PHP (допустим) не делает никаких SELECT/INSERT/UPDATE/DELETE, а вызывает только процедуры типа METHOD_acion(params).
Например, GET_some(id);
Из плюсов вижу:
- Данные и логика в одном месте
- PHP легко заменяется на всё, что угодно, вплоть до nginx модуля на С
- Версионность, целостность кода+данных легче (?) контролировать
- Бэкап одним дампом
Из минусов:
- Как работать со "сложными" данными/параметрами, в частности с JSON? Есть ли какой-то "универсальный" формат передачи иерархических данных PHP <-> MySQL? На случай, если понадобится отдать xml, например.
- К предыдущему пункту: валидация входных данных - как?
- Как все-таки сделать версионность?
- Отладка кода - мрак еще тот.
- Удобства почти ноль - ни фреймворков, ни библиотек - все ручками.
Кто-то таким извращением занимался? Отговорите меня ;)