【发布时间】:2020-03-21 07:22:03
【问题描述】:
假设我们有两个SQLAlchemy的类 P>
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql import JSONB
db = SQLAlchemy()
class Parent(db.Model):
id = db.Column(db.Integer, primary_key=True)
data = db.Column(JSONB)
class Child(db.Model):
id = db.Column(db.Integer, primary_key=True)
parent_id = db.Column(db.Integer, db.ForeignKey("parent.id"))
parent = db.relationship(Parent, backref="children")
data = db.Column(JSONB)
Child.data的含量是一个字典d和Parent.data的含量为辞典的列表,一个用于每个子,即parent.data = [child.data for child in parent.children] P>
有没有办法让两个 在一个原则上可以是例如摆脱 谢谢:)data列同步? STRONG> P>
Parent.data列,并与属性替换它简单地返回[child.data for child in parent.children]。然而,在我们使用的情况下,这是一个相当缓慢的,所以我们想保持聚合数据的一个副本Parent.data列。此外,应用程序的某些部分修改整个Parent.data一次,而其他修改Child.data。
我想过做data“私人”,写一个二传手,在其他表会自动更新相应的列(如果它更新一改之前,为了避免无限循环结束了,也许检查)。有没有更好的办法?
【问题讨论】:
标签: python database postgresql sqlalchemy flask-sqlalchemy