Итак, сейчас я разрабатываю бэкэнд-API с использованием GraphQL и Python с SQLAlchemy или Node.js с Sequelize, чтобы записать все данные в базу данных SQLite.
Я до сих пор не уверен, какой бэкэнд Я в конечном итоге. Возможно, этот вопрос и ответ на мой вопрос приведут меня к использованию одного или другого.
Так что в моем приложении будет функция, в которую вы добавляете броски дротиков (например, двойные 20, тройные 19, ...) в стол с бросками. В зависимости от выбранной игры и выбранных условий, этот бросок будет либо вычитаться из общего количества, либо добавляться в таблицу счетчиков или что-то в этом роде.
Каждый раз, когда добавляется бросок, будет проверяться, будет ли игра выиграл и некоторые другие чеки. Они также могут записывать (фиксировать) данные в базу данных.
Теперь, если пользователь введет неправильный номер / или автомат c darts обнаружит неправильный номер броска (неисправность), происходит выброс и несколько измененных данных в базе данных, которые мне придется откатить.
В приложениях для игры в дартс вы найдете в магазине приложений либо ios, либо android, у вас всегда будет кнопка отмены, которая удалит throw из базы данных и все "эффекты", вызванные введением неправильного throw.
Как бывший администратор ms sql, моей первой идеей были журналы транзакций и функция отката. Но после некоторого поиска в net я понимаю, что и SQLAlchemy, и Sequelize будут откатывать транзакции только при исключении.
Могу ли я преднамеренно откатить последнюю "завершенную" транзакцию (то есть все изменения, которые, например, будет выполнять функция) в конце функции) нажатием кнопки / вызовом пути api rest, например '/ undo', и, если да, есть ли фрагменты кода для SQLAlchemy или Sequelize, которого мне не хватает?
С уважением, Патрик
редактировать:
коллекция предоставленных ответов: