我正在尝试使用烧瓶创建我的第一个应用程序。到目前为止,这是我的节点类:
class TreePage(db.Model):
__tablename__ = 'tree'
id = db.Column(db.Integer, primary_key= True)
name = db.Column(db.String(100), nullable= False)
content = db.Column(db.String)
parent_id = db.create_all(db.Integer, db.ForeignKey('id'))
children = db.relationship('TreeNode', cascade = "all",
backref = db.backref("parent", remote_side='TreeNode.id'),
collection_class = db.attribute_mapped_collection('name')
)
对于SQLAlchemy和数据库来说,它们是新手,所以我在这里以及在SQLAlchemy文档中阅读的许多信息都很难掌握。
我现在的目标是能够访问一棵树及其内容,然后如果该树有孩子,则可以选择要学习的孩子; this基本上是我想要制作的图像的视觉表示。
我的猜测是这应该是一对多的关系,所以我将不必与本地/远程机构打交道了吗?目前,这两者使我感到困惑。接下来,我是否需要担心cascade
参数,还是可以暂时保留它?
最后,我想巩固自我参照关系的工作方式。对于两个不同的类,我很容易理解:“一个”关系创建一个relationship
对象,然后“许多”对象创建一个引用其所有者主键的外键。但是,在自引用关系的情况下,“所有者”是持有id
和parent_id
作为之前任何父对象的ID的对象吗?谢谢,如果这一切令人困惑,我深表歉意。