在實際問題中,我們經常遇到多對多的資料關係,比如一張表放作者,一張表放書籍,一本書可以有多個作者,怎麼來約束這種關係呢?在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圖...