深入浅出Flask(50):flask_sqlalchemy的创建多对多的关系表

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出Flask(50):flask_sqlalchemy的创建多对多的关系表相关的知识,希望对你有一定的参考价值。

在数据库的设计里,也会经常遇到多对多的关系,比如一个学生可以选择多门课程,一门课程又可以被多个学生选择。在数据库里设计这种多对多的关系,往往需要引入第三张表来表示这种关系。

在SQLAlchemy里创建这种辅助表时,尽量采用原始的db.Table表,而不是db.Model。因为这张中间表一般不存在有意义的字段,也就没有相关的操作,其它操作都是由其它模型来完成的。

在这里使用一个网页与标签的关系来演法,一个网页有多个标签,而一个标签也可以被多个网页引用。所以它们是多对多的关系,按照上面的设计原则就引入第三张表,而这张表使用db.Table函数来描述:

tags = db.Table(\'tags\',

    db.Column(\'tag_id\', db.Integer, db.ForeignKey(\'tag.id\'), primary_key=True),

    db.Column(\'page_id\', db.Integer, db.ForeignKey(\'

以上是关于深入浅出Flask(50):flask_sqlalchemy的创建多对多的关系表的主要内容,如果未能解决你的问题,请参考以下文章

深入浅出Flask(43): Flask应用创建配置参数命令

深入浅出Flask:Flask的蓝图插件化

深入浅出Flask:flask使用请求的全局对象g

深入浅出Flask(42):click库在Flask里加载插件命令

深入浅出Flask(46):flask_sqlalchemy的简单关系

深入浅出Flask(47):flask_sqlalchemy的应用动态绑定