Emboîtée Set Modèle et SQLAlchemy - Ajout de nouveaux nœuds
-
19-09-2019 - |
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?
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.