我正在尝试在 SQLAlchemy 中创建自引用关系。
我有一个“问题”类,它可能具有完全相同的“问题”兄弟姐妹,但具有不同的封面图像属性。
我希望每个模型都包含一个属性,该属性包含其兄弟姐妹的列表,但如果可能的话,不包含其自身。
我的问题模型目前如下所示:
class Issue(db.Model):
__tablename__ = 'issues'
# IDs
id = db.Column(db.Integer, primary_key=True)
title_id = db.Column(db.Integer, db.ForeignKey('titles.id'))
publisher_id = db.Column(db.Integer, db.ForeignKey('publishers.id'))
parent_id = db.Column(db.Integer, db.ForeignKey('issues.id'))
# Attributes
product_id = db.Column(db.String(100))
issue_number = db.Column(db.Float)
.......
# Relationships
is_parent = db.Column(db.Boolean(), default=False)
alternates = db.relationship('Issue',
backref=db.backref('parent', remote_side=[id])
)
每个问题都有一个“is_parent”属性,我在确定问题是“基本”问题时设置了该属性。但是,我仍然希望所有兄弟姐妹都能够相互访问。
目前,我正在给“父母”问题与其所有“孩子”/“兄弟姐妹”建立关系。
当我与“兄弟”的实例交互时会出现问题。我想直接访问它的所有亲戚,但我必须先通过父母。
任何帮助将不胜感激!
编辑:基本上,我想创建一个自我引用的多对多关系。我认为这是正确的追求方向是错误的吗?