Как при вставке данных в БД изменять их в зависимости от неких условий?
В базу данных добавляется событие. У события есть поле "Количество посетителей". Также есть признак "Основное событие". События без этого признака как бы входят в состав "Основного события".
При создании "Основного события" указывается максимально возможное количество посетителей. События не являющиеся основными, при их создании, как бы отщипывают посетителей от "Основного". Соответственно максимальное количество посетителей уменьшается или увеличивается при удалении неосновных событий.
Задача состоит в том, чтобы непосредственно в БД хранить число посетителей оставшихся у "Основного события", после создания или удаления неосновных событий.
Для работы с БД используется SQLAlchemy, соответственно к модели описывающей таблицу событий, я хочу добавить функции корректирующие значение поля "Количество посетителей" при вставке или удалении событий без признака "Основное событие".
Правильно ли это? Если нет почему и как следует подобное реализовать? В функциях представления?
REDkiy: Первая ссылка же. Транзакция тут только для того, чтобы не нарушить целостность твоей логики. Всё просто. Создаёшь метод у "основного события", который отнимает N посетителей у него и создаёт новое событие с этим N посетителей (ну и возвращает, наверное, новое событие для удобства).