beego ORM 所有多對多關係查詢

2021-10-04 18:17:16 字數 1444 閱讀 4402

示例models中,articlecategory為多對一關係,articletag是多對多關係。

type article struct

type tag struct

type category struct

假設瀏覽器請求文章目錄資訊,伺服器需要返回的資訊格式如下,也就是說對查詢到的article物件需要查詢到其關聯到的乙個category物件與所有tag物件

[,  

]

示例程式如下,

// 對單個article,查tag表

qs =

querytable

("tag"

) lists :=

make([

]orm.paramslist,

len(articles)

)for i, article :=

range articles

qs.filter

("articles__article__id"

, article.id)

.valuesflat

(&lists[i]

,"name")}

// 測試輸出

for i, article :=

range articels

}

func

getbyrelated()

// 對單個article,載入所有有關係的tag物件

for_

, article :=

range articles

// 測試輸出

for i, article :=

range articels

fmt.

println()

}}

實際使用的時候單獨建立tag表是為了文章分類、統計。在示例**現的情況,實際上另外給article物件賦予了乙個string成員用來表示tags名稱,避免過多的查詢操作。

多對多關係

實體模型中相關的模型之間為了方便查詢需要做到你中有我 我中有你 一對多表設計上是在多方應用少方的主鍵作為外來鍵約束 模型上需要在多方加入乙個少方模型物件的屬性,在少方加入乙個多方物件的列表 語法 少方物件 db.relationship 少方模型名 backref db.backref xxlist...

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 設定和該實體類關聯...