嵌套集模型与SQLAlchemy - 添加新节点
如何使用SQLAlchemy在一个采用嵌套集模型实现的树中添加新节点呢?
class Category(Base):
__tablename__ = 'categories'
id = Column(Integer, primary_key=True)
name = Column(String(128), nullable=False)
lft = Column(Integer, nullable=False, unique=True)
rgt = Column(Integer, nullable=False, unique=True)
我需要在表上设置一个触发器,以便为新节点分配lft
和rgt
值,并更新所有其他受影响的节点。但是,定义节点位置的最佳方法是什么呢?我可以把新节点的parent_id
传递给构造函数,但我该如何将parent_id
传递给触发器呢?
1 个回答
6
你可以看看SQLAlchemy的示例目录里的嵌套集合示例。这个示例是在Python层面上实现的模型。
如果想在数据库层面上用触发器来实现,就需要某种方式来传达想要的父级关系,可以通过增加一个额外的列或者使用存储过程来实现。