【发布时间】:2020-06-02 21:38:27
【问题描述】:
所以我现在正在使用 GraphQL 和带有 SQLAlchemy 的 Python 或带有 Sequelize 的 Node.js 开发一个后端 API,以将所有数据写入 SQLite 数据库。
我仍然不确定最终会使用什么后端。也许这个问题和我的问题的答案会导致我使用其中一个。
所以我的应用程序将具有一个功能,您可以在其中将飞镖投掷(如双 20、三重 19...)添加到带有投掷的表格中。根据选择的游戏和选择的条件,此投掷将从总计数中减去,或者可能添加到计数器表或类似的东西中。
每次添加投掷时,都会检查游戏是否获胜以及其他一些检查。这些也可能将数据写入(提交)到数据库。
现在,如果用户输入了错误的数字/或者自动飞镖机会发现错误的投掷数(故障),那么我将不得不回滚数据库中的投掷和几个更改的数据。
在 darts scorer 应用程序中,您会在应用商店中找到 ios 或 android,您始终会有一个撤消按钮,该按钮将从数据库中删除投掷以及因输入错误投掷而导致的所有“效果”。
作为一名前 mssql 管理员,我的第一个想法是事务日志和回滚功能。但是在网上搜索了一段时间后,我了解到 SQLAlchemy 和 Sequelize 只会在异常时回滚事务。
我是否可以通过点击按钮/调用诸如“/undo”之类的rest api路径来故意回滚最后一个“完成”事务(意味着例如函数将在函数结束时进行的所有更改),如果是这样的话我缺少 SQLAlchemy 或 Sequelize 的任何代码 sn-ps 吗?
最好的问候, 帕特里克
编辑:
所提供答案的集合:
- 命令模式(python)
【问题讨论】:
标签: python node.js sqlalchemy sequelize.js