【发布时间】:2020-06-25 22:55:10
【问题描述】:
我正在使用 SQLAlchemy ORM 来表示 MySQL 数据库的数据模型。假设对于我的一种 ORM 实体类型,在磁盘上存储了一个辅助数据的外部文件,数据库行和文件之间具有一对一的关联。
是否有一个好的软件模式可以让 ORM 对象的实例与外部文件保持同步?
例如,理想的方法是使用某种类型的 setter 将数据附加到 ORM 对象的实例,然后在内部保存数据,并在对象被持久化时将其写入磁盘进入数据库。
此外,文件的删除应该与从数据库中删除 ORM 对象同步进行。
我猜我需要利用 SQLAlchemy 中的事件侦听器系统来注册带有这些状态转换的回调。但是我不确定执行此操作的最佳方法,应在何处注册事件侦听器,如何将此逻辑封装在特定的 ORM 实体类型中,以及如何将任意数据存储在不映射的 ORM 实体中到数据库列。
【问题讨论】:
标签: sqlalchemy