Casey
Новичок
Взаимодействие между объектами, работающими с БД: транзакции
Доброго времени суток!
Пишется учётная система, в которой хранится история изменения некоторых значений - дата, время, человек, внесший изменение.
Поскольку задача хранения истории значений актуальна во множестве задач проекта, решил, что будет разумно сделать универсальный класс для управления импровизированными регистрами.
Столкнулся с такой проблемой: действия по извлечению и изменению значений регистров включают в себя несколько операций с БД, т.е. их желательно бы выделить в транзакцию.
Но логика работы с самими данными, где одно из полей хранится в регистре также требует отдельнй транзакции на каждую логическую операцию!
Однако общий класс может использоваться и без "внешней" транзации, в простых случаях
Так и просятся вложенные транзакции, однако их в mysql нет, максимум что нашёл - savepoint, но функция не очень применима, т.к. класс не знает - открыта ли транзакция или нет.
Вопрос - как обходятся такие ситуации в крупных проектор, когда между собой взаимодействуют несколько объектов, каждый из которых работает со своими данными БД?
Доброго времени суток!
Пишется учётная система, в которой хранится история изменения некоторых значений - дата, время, человек, внесший изменение.
Поскольку задача хранения истории значений актуальна во множестве задач проекта, решил, что будет разумно сделать универсальный класс для управления импровизированными регистрами.
Столкнулся с такой проблемой: действия по извлечению и изменению значений регистров включают в себя несколько операций с БД, т.е. их желательно бы выделить в транзакцию.
Но логика работы с самими данными, где одно из полей хранится в регистре также требует отдельнй транзакции на каждую логическую операцию!
Однако общий класс может использоваться и без "внешней" транзации, в простых случаях
Так и просятся вложенные транзакции, однако их в mysql нет, максимум что нашёл - savepoint, но функция не очень применима, т.к. класс не знает - открыта ли транзакция или нет.
Вопрос - как обходятся такие ситуации в крупных проектор, когда между собой взаимодействуют несколько объектов, каждый из которых работает со своими данными БД?