目錄
1.關係對映
1.一對一對映
2.一對多對映
3.多對多對映
練習**
1.什麼是一對一
a表中的一條記錄只能與b表中的一條記錄相關聯
b表中的一條記錄也只能與a表中的一條記錄相關聯
典型代表:一夫一妻制
在資料庫中的實現:
a表:設定 主鍵
b表:增加一列,引用自a表的主鍵(外來鍵),並且增加唯一約束
2.語法
在關聯的兩個類的任何乙個類中,增加對另外乙個類的引用
屬性 = models.onetoonefield(entry)
ex:class wife(models.model):
name = models.charfiled(...)
age = models.integerfield(...)
author = models.onetoonefield(author)
3.查詢
class wife(models.model):
name = models.charfiled(...)
age = models.integerfield(...)
author = models.onetoonefield(author)
正向查詢:通過 wife 找 author
# 獲取id為1的wife的資訊
wife = wife.objects.get(id=1)
# 再獲取wife所關聯的author
author = wife.author
反向查詢:通過 author 找 wife
django 會通過 onetoonefield() 在關聯的實體類中增加乙個隱式屬性,表示對當前實體的引用
隱式屬性名成為 :當前類名的全小寫形式
# 先獲取id為2的author的資訊
author=author.objects.get(id=2)
# 再獲取author對應的wife
wife = author.wife
1.什麼是一對多
a表中的一條資料可以與b表中的任意多條資料相關聯
b表中的一條資料只能與a表中的一條資料相關聯
商品型別 與 商品之間的關係
出版社(publisher) 與 圖書(book)
2.在資料庫中的體現
通過外來鍵(foreign key) 來實現一對多
在"多"表中增加外來鍵(foreign key)對"一"表中的主鍵進行引用
3.語法
通過外來鍵(foreign key)
在"多"實體中,增加:
屬性 = models.foreignkey(entry)
4.查詢
book(多) 和 publisher(一)
class book(models.model):
... ...
publisher = models.foreignkey(publisher)
正向查詢 : 通過 book 查詢 publisher
book=book.objects.get(id=1)
publisher=book.publisher
反向查詢 : 通過 publisher 查詢 book
django會通過foreignkey()向關聯的類中增加乙個隱式屬性 : 當前類_set
1.什麼是多對多
a表中的一條記錄可以與b表中的任意多條記錄相匹配
b表中的一條記錄可以與a表中的任意多條記錄相匹配
2.在資料庫中的體現
必須建立第三張表,關聯涉及到的兩張表的資料
3.語法
在涉及到的兩個類的任意乙個類中,都可以增加對另外乙個類的多對多的引用
entry=models.manytomanyfield(entry)
ex:建立書籍和作者之間的多對多的引用
可以在書籍實體中,增加多作者的引用
可以在作者實體中,增加對書籍的引用
以上方式 二選一
class book(models.model):
title = models.charfield(***)
publicate_date = models.datefield()
author = models.manytomanyfield(author)
4.查詢
class book(models.model):
title = models.charfield(***)
publicate_date = models.datefield()
author = models.manytomanyfield(author)
正向查詢:通過book找到對應的所有的author
# 查詢id為1的書籍的資訊
book=book.objects.get(id=1)
# 查詢book對應的所有的作者
authors=book.author.all()
通過關聯屬性查詢對應的所有資訊
反向查詢:通過author查詢所有的book
django會通過manytomanyfield()在關聯類中增加乙個隱式屬性
屬性名:當前類_set
# 查詢id為2的author的資訊
author = author.objects.get(id=2)
# 查詢author對應的所有的書籍
books=author.book_set.all()
練習:建立 author 與 publisher 多對多關係
1.查詢 老舍 所簽約的所有出版社
2.查詢 北京大學出版社 下所有的簽約作者
物件關係對映
雙向一對一對映 class card 把關係的維護交給多方物件的屬性去維護關係 c 關係的擁有方負責關係的維護,在擁有方建立外來鍵。所以用到 joincolumn cascade 設定級聯關係,這種關係是遞迴呼叫 可以是 cascadetype.persist 級聯新建 cascadetype.re...
物件關係對映
雙向一對一對映 class card 把關係的維護交給多方物件的屬性去維護關係 c 關係的擁有方負責關係的維護,在擁有方建立外來鍵。所以用到 joincolumn cascade 設定級聯關係,這種關係是遞迴呼叫 可以是 cascadetype.persist 級聯新建 cascadetype.re...
Servlet對映關係
在web.xml文件中 servletdemo1 利用哪個名字可登陸 url pattern 標籤中若是填 的話,無論怎麼訪問都是這個servlet name中的servlet url pattern 標籤中若是填 html 的話,無論訪問哪個html檔案訪問的都是這個servlet name中的s...