嵌套集模型和SQLAlchemy - 添加新节点

时间:2009-07-27 01:38:21

标签: python sql tree sqlalchemy nested-sets

如何将新的节点与SQLAlchemy一起添加到使用Nested Set Model实现的树中?

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)

我需要在表上触发为新节点分配lftrgt并更新所有其他受影响的节点,但定义节点位置的最佳方法是什么?我可以将新节点的parent_id传递给构造函数,但是如何将parent_id传递给触发器?

1 个答案:

答案 0 :(得分:6)

您可能希望查看SQLAlchemy的examples目录中的nested sets example。这在Python级别实现了模型。

使用触发器在数据库级别执行此操作需要某种方式来传达所需的父级,可以是额外的列,也可以是存储过程。