Question

Comment les nouveaux nœuds ajoutés avec SQLAlchemy à un arbre mis en œuvre en utilisant le emboîtée Set modèle ?

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)

Je besoin d'un déclencheur sur la table pour assigner lft et rgt pour le nouveau nœud et mettre à jour tous les autres nœuds concernés, mais quelle est la meilleure façon de définir la position du noeud? Je peux passer le parent_id du nouveau nœud au constructeur, mais comment pourrais-je communiquer alors le parent_id à la gâchette?

Était-ce utile?

La solution

Vous pouvez regarder le exemple des ensembles imbriqués dans le répertoire des exemples de SQLAlchemy. Ce modèle met en œuvre le au niveau de Python.

Le faire au niveau de la base de données avec des déclencheurs aurait besoin d'un moyen de communiquer le parent souhaité, soit comme une colonne supplémentaire ou une procédure stockée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top