多對多關係

2021-08-08 23:51:35 字數 1377 閱讀 5851

實體模型中相關的模型之間為了方便查詢需要做到你中有我 我中有你

一對多表設計上是在多方應用少方的主鍵作為外來鍵約束

模型上需要在多方加入乙個少方模型物件的屬性,在少方加入乙個多方物件的列表

語法:少方物件=db.relationship(『少方模型名』,backref=db.backref(『xxlist』))

表設計上需要建立乙個關係表 甲乙雙方的主鍵進行關係對映

模型上需要在甲方新增乙個乙方模型物件的列表,在乙方新增乙個甲方模型物件的列表

語法:乙方物件列表名 =db.relationship(『乙方模型名』,secondary=』資料庫關係表名』,backref=db.backref(『甲方模型物件列表名』))

關係表的模型用db.table()來建立,而不是定義乙個關聯表實體類

-------關係表模型----------

article_tag = db.table('article_tag',

db.column('article_id', db.integer, db.foreignkey('article.id'), primary_key=true),

db.column('tag_id', db.integer, db.foreignkey('tag.id'), primary_key=true)

)

--多對多模型--

class

article

(db.model):

id = db.column

(db.integer, primary_key=true, autoincrement=true)

title = db.column

(db.string(100), nullable=false)

---關聯關係---

tags = db.relationship('tag',secondary='article_tag',backref=db.backref('articles'))

class

tag(db.model):

id = db.column

(db.integer, primary_key=true, autoincrement=true)

tagname = db.column

(db.string(100), nullable=false)

------查詢案例---------

article1 = article.query.filter(article.title=='aaa').first()

for x in article1.tags:

print(x.tagname)

Flask sqlalchemy多對多關係

from flask import flask from flask sqlalchemy import sqlalchemy article tag db.table article tag db.column article id db.integer,db.foreignkey article...

多對多關係對映

需要用到 manytomany註解,然後在需要維護關係的一方,加上 jointable註解。必須指定乙個維護關係,否則會導致關係表id重複出現錯誤。jointable 有以下屬性,joincolumns 設定該實體類對映在關係表中的外來鍵列名和參照列,inversecolumns 設定和該實體類關聯...

Flask 多對多關係

1.專案結構 對錶的基本操作可見鏈結 3.多對多關係 以下通過文章,作者,文章 標記 三個表示例操作 from flask import flask from flask sqlalchemy import sqlalchemy import config create table article ...