Django資料庫操作中的多對多關係

2021-08-11 12:27:32 字數 1401 閱讀 1727

在實際問題中,我們經常遇到多對多的資料關係,比如一張表放作者,一張表放書籍,一本書可以有多個作者,怎麼來約束這種關係呢?在django的orm中是如何處理的呢。

今天遇到了這個問題,簡單的來寫一下。

比如,在我們看書的時候,一本書,可以有多個作者,比如《鏈路**》這本書的作者是 呂琳瑗 和 周濤

所以我準備了兩個表,作者表和書籍表,非常簡單,主要看一下這個的用法

class author(models.model):

name = models.charfield(max_length=20, verbose_name="作者名", default="")

age = models.integerfield(default=10, verbose_name="作者年齡")

class meta:

verbose_name = "作者資訊"

verbose_name_plural = verbose_name

def __str__(self):

return self.name

class book(models.model):

book_name = models.charfield(max_length=50, verbose_name="書籍名", default="")

author = models.manytomanyfield(author, verbose_name="作者")

class meta:

verbose_name = "書籍資訊"

verbose_name_plural = verbose_name

def __str__(self):

return self.book_name

在管理後台新增兩個作者

然後去新增一本書,按住control選中兩個作者

然後可以看到,兩個作者被新增到書籍的作者列表中

我們到資料庫中看下,多了乙個book_book_author表

Django多對多操作

模型 from django.db import models 老師 class teacher models.model name models.charfield max length 32 學生 class student models.model name models.charfield ...

資料庫中的多對多的查詢

使用mybatis的問題呢,就得自己寫sql,當然使用mybatis generator 也能生成一部分,但一些就得自己寫。使用hibernate 與jpa 就很少需要寫了。不過不太靈活,比較繁瑣。可能只需要乙個簡單的sql語句就解決的問題就需要配置兩個物件之間的關聯關係,這個關聯關係在一些情況下不...

資料庫表多對多的設計

先上問題!現在有a b c三張表,a和b是一對多的關係,b和c是一對一的關係,c和b是一對多的關係,a和c是多對多的關係。問題 是否設計第四張表專門存放a b c的關係,還是把關係維護在b表中?原則 首先在資料庫中不建議建立三維關係。其實就是說一張表 關係表 不要維繫三個模型的的關係 設計思路er圖...