文章内容
2020/6/22 16:47:29,作 者: 黄兵
SQLAlchemy 自连接
我们在使用 SQLAlchemy 的时候,经常会遇到自连接,例如:菜单下面有子菜单,类别下面有子类别,还有省下面有城市等,都可以用到自连接。
数据表自关联的一对多关系,典型的就是父亲和子女的关系。我们通过在表中引用父亲的 id 来实现,然后通过反向链接来获取子女的信息。
👇面是一个类与子类的自关联示例:
class Category(db.Model): __tablename__ = 'categories' id = db.Column(db.Integer, primary_key=True) name_zh = db.Column(db.String(128), unique=True) name_en = db.Column(db.String(128), unique=True) description_zh = db.Column(db.String(1024), doc='说明') description_zh_html = db.Column(db.String(1024), doc='说明') keywords = db.Column(db.String(64)) description = db.Column(db.String(128)) link_text = db.Column(db.String(32), unique=True, index=True) child_category_id = db.Column(db.Integer, db.ForeignKey('categories.id')) articles = db.relationship('Article', backref='category', lazy='dynamic') categories = db.relationship('Category', remote_side=[id], backref='categories')
一个父类别下面可能有多个子类别,通过子类别也可以查询父类别。
参考资料:
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - SQLAlchemy 自连接
评论列表