HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    多對(duì)多聯(lián)系的例子(事物間具有多對(duì)多聯(lián)系的例子)

    發(fā)布時(shí)間:2023-03-20 20:34:57     稿源: 創(chuàng)意嶺    閱讀: 117        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于多對(duì)多聯(lián)系的例子的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    多對(duì)多聯(lián)系的例子(事物間具有多對(duì)多聯(lián)系的例子)

    一、一對(duì)多及多對(duì)多關(guān)系

    生活中的多對(duì)一關(guān)系:班主任,班級(jí)關(guān)系。一個(gè)班主任可以帶很多班級(jí),但是每個(gè)班級(jí)只能有一個(gè)班主任

    以上創(chuàng)建了兩條老師數(shù)據(jù)

    由于我們?cè)O(shè)置外鍵關(guān)聯(lián)可以為空null=True,所以此時(shí)在班級(jí)表創(chuàng)建時(shí),可以直接保存,不需要提供老師數(shù)據(jù)

    以上創(chuàng)建了兩條老師數(shù)據(jù)

    由于我們?cè)O(shè)置外鍵關(guān)聯(lián)可以為空null=True,所以此時(shí)在班級(jí)表創(chuàng)建時(shí),可以直接保存,不需要提供老師數(shù)據(jù)

    將老師分配個(gè)班級(jí)之后,由于班級(jí)表關(guān)聯(lián)了老師字段,我們可以通過班級(jí)找到對(duì)應(yīng)老師,雖然老師表中沒有關(guān)聯(lián)班級(jí)字段,但是也可以通過老師找到他所帶的班級(jí),這種查詢方式也叫作關(guān)聯(lián)查詢

    通過模型類名稱后追加一個(gè)_set,來實(shí)現(xiàn)反向查詢

    由于我們這是一個(gè)一對(duì)多的關(guān)系,也就說明我們的老師可以對(duì)應(yīng)多個(gè)班級(jí)

    我們可以繼續(xù)給H1老師分配新的班級(jí)

    一個(gè)班級(jí)只能對(duì)應(yīng)一個(gè)老師,外鍵是唯一的,那么你在繼續(xù)給C1班級(jí)分配一個(gè)新的老師時(shí),會(huì)覆蓋之前的老師信息,并不會(huì)保存一個(gè)新的老師

    把這個(gè)班級(jí)的老師刪除,由于設(shè)置了外鍵字段可以為null,此時(shí)班級(jí)的老師選項(xiàng)為null

    注意:

    1、要記得刪除之后要重新獲取一次數(shù)據(jù),否則查看到的結(jié)果中還是之前獲取到的有老師的班級(jí)數(shù)據(jù)

    2、c1 = Class.objects.all().first()或是c1=Class.objects.filter(id=2).first(),都需要加 .first() ,否則會(huì)報(bào)錯(cuò)??!!

    生活中,多對(duì)多關(guān)系:一個(gè)音樂家可以隸屬于多個(gè)樂隊(duì),一個(gè)樂隊(duì)可以有多個(gè)音樂家

    創(chuàng)建音樂家以及樂隊(duì)

    創(chuàng)建出兩個(gè)樂隊(duì)之后對(duì)其進(jìn)行音樂家的添加,多對(duì)多字段添加時(shí),可以使用add函數(shù)進(jìn)行多值增加,在ManyToManyField所在模型的記錄使用add方法

    B1樂隊(duì)含有A1,A2兩名成員,B2樂隊(duì)含有A1成員

    可以在音樂家表中查找某個(gè)音樂家屬于哪些樂隊(duì)

    也可以查找這音樂家在哪個(gè)樂隊(duì)

    多對(duì)多關(guān)聯(lián)字段的刪除,要使用remove來進(jìn)行關(guān)系的斷開,而不是直接使用delete,remove只會(huì)斷開數(shù)據(jù)之間的聯(lián)系,但是不會(huì)將數(shù)據(jù)刪除

    在B1樂隊(duì)中刪除A1音樂家

    創(chuàng)建一個(gè)多對(duì)一關(guān)系的父子表,一個(gè)父親可能有多個(gè)兒子

    創(chuàng)建父親和兒子們

    查詢所有父親名字是jack的孩子

    查詢所有兒子名開頭為J的父親

    獲取到某一個(gè)父親的所有孩子,通過某一條數(shù)據(jù)的小寫表名_set反向查詢

    創(chuàng)建一些數(shù)據(jù)

    通過soldier_set我們就可以關(guān)聯(lián)到對(duì)應(yīng)的士兵表,并且對(duì)應(yīng)返回結(jié)果可以執(zhí)行我們常用的filter,exclude等查詢操作

    也可以通過定義關(guān)聯(lián)字段中的related_name值,來實(shí)現(xiàn)自定義的反向查詢名字,注意:related_name的值必須唯一

    接下來通過某條數(shù)據(jù)反向查詢

    注意:related_name一定是一個(gè)唯一的值,否則反向查找時(shí)會(huì)出現(xiàn)二異性錯(cuò)誤,也可以將related_name初始化為+,來取消反向查詢

    二、實(shí)體間存在多種聯(lián)系,什么模型能夠描述實(shí)體間多對(duì)多的聯(lián)系。

    (1)實(shí)體:現(xiàn)實(shí)世界中的事物;

    (2)屬性:事物的特性;

    (3)聯(lián)系:現(xiàn)實(shí)世界中事物間的關(guān)系。實(shí)體集的關(guān)系有一對(duì)一、一對(duì)多、多對(duì)

    三、請(qǐng)問數(shù)據(jù)庫(kù)在創(chuàng)建表的時(shí)候如何設(shè)計(jì)表關(guān)系,一對(duì)一,一對(duì)多,多對(duì)多 請(qǐng)高手舉例說明。謝謝!??!

    多對(duì)多關(guān)系至少需要3個(gè)表,我們把一個(gè)表叫做主表,一個(gè)叫做關(guān)系表,另外一個(gè)叫做字典表或者副表(字典表是紀(jì)錄比較少,而且基本穩(wěn)定的,例如:版塊名稱;副表是內(nèi)容比較多,內(nèi)容變化的,例如)。

    按照數(shù)據(jù)庫(kù)的增刪查改操作,多對(duì)多關(guān)系的查找都可以用inner join或者

    select * from 主表 where id in (select 主表id from 關(guān)系表)

    1,角色任命型

    特點(diǎn):關(guān)系表兩外鍵組合無重復(fù)紀(jì)錄,關(guān)系表一般不需要時(shí)間字段和主鍵,有一個(gè)表是字典類型的表。

    界面特點(diǎn):顯示主表,用checkbox或多選select設(shè)置多選關(guān)系。

    例如:任命版主(用戶表-關(guān)系表-版塊名稱表),角色權(quán)限控制等,用戶是5個(gè)版塊版主,只要關(guān)系表5行紀(jì)錄就可以確立,關(guān)系表的兩個(gè)外鍵具有聯(lián)合主鍵性質(zhì)。

    增加關(guān)系:如果沒有組合紀(jì)錄,insert之。

    刪除關(guān)系:如果有組合紀(jì)錄,刪除之。

    2,集合分組型

    特點(diǎn):同角色任命型類似,關(guān)系表兩外鍵組合無重復(fù)紀(jì)錄,關(guān)系表一般不需要時(shí)間字段和主鍵。區(qū)別是主副表都不是字典表,可能都很大不固定。

    界面特點(diǎn):顯示主表,用搜索代替簡(jiǎn)單的checkbox或多選select,或者一條一條的添加。

    例如:歌曲專集(專集表-關(guān)系表-歌曲表)。手機(jī)分組(分組表-關(guān)系表-手機(jī)表)。用戶圈子(圈子表-關(guān)系表-用戶表)。文章標(biāo)簽(文章表-關(guān)系表-標(biāo)簽表)

    增加關(guān)系:同版主任命型。

    刪除關(guān)系:同版主任命型。

    3,明細(xì)帳型

    特點(diǎn):關(guān)系表可以有重復(fù)紀(jì)錄,關(guān)系表一般有時(shí)間字段,有主鍵,可能還有文字型的字段用來說明每次發(fā)生關(guān)系的原因(消費(fèi))。

    界面特點(diǎn):顯示關(guān)系表,用radio或下拉設(shè)置單選關(guān)系。

    例如:現(xiàn)金消費(fèi)明細(xì)帳或訂單(用戶表-訂單表-消費(fèi)原因表),用戶可能多次在同一事情上重復(fù)消費(fèi)。積分變化紀(jì)錄也屬于這類。

    增加關(guān)系:不管有沒有組合紀(jì)錄,insert之,紀(jì)錄時(shí)間。

    刪除關(guān)系:根據(jù)關(guān)系表PK刪除。

    4,評(píng)論回復(fù)型

    特點(diǎn):同明細(xì)帳型關(guān)系表一般有時(shí)間字段,有主鍵,區(qū)別是重點(diǎn)在文字型的字段用來說明每次發(fā)生關(guān)系的內(nèi)容(評(píng)論回復(fù))。

    界面特點(diǎn):回復(fù)文本框。

    例如:論壇回復(fù)(用戶表-回復(fù)表-帖子表),用戶可能多次在不同帖子上評(píng)論回復(fù)費(fèi)。

    增加關(guān)系:不管有沒有組合紀(jì)錄,insert之,紀(jì)錄時(shí)間和文字。

    刪除關(guān)系:根據(jù)關(guān)系表(回復(fù)表)PK刪除。

    5,站內(nèi)短信型

    特點(diǎn):主副表是同一個(gè),關(guān)系表一般有時(shí)間字段,有主鍵,重點(diǎn)在關(guān)系表文字型的字段用來說明每次發(fā)生關(guān)系的內(nèi)容(消息)或者其他標(biāo)記位來表示文字已讀狀態(tài)時(shí)間等。

    界面特點(diǎn):回復(fù)文本框。

    例如:站內(nèi)短信(用戶表-短信表-用戶表),用戶可能給用戶群發(fā)或者單發(fā),有標(biāo)記位來表示文字已讀狀態(tài)時(shí)間等。

    增加關(guān)系:不管有沒有組合紀(jì)錄,insert之,紀(jì)錄時(shí)間和文字。

    刪除關(guān)系:根據(jù)關(guān)系表(回復(fù)表)PK刪除。

    6,用戶好友型

    特點(diǎn):主副表是同一個(gè),同集合分組型,關(guān)系表兩外鍵組合無重復(fù)紀(jì)錄,關(guān)系表一般不需要時(shí)間字段和主鍵。

    界面特點(diǎn):同集合分組型,顯示主表,用搜索代替簡(jiǎn)單的checkbox或多選select,或者一條一條的添加。

    例如:下載站點(diǎn)的文件,(文件表-關(guān)系表-文件表)可以被軟件工具打開,軟件工具本身也是一種文件,可以被下載。用戶的好友,也是用戶(用戶表-好友關(guān)系表-用戶表)

    增加關(guān)系:同版主任命型。

    刪除關(guān)系:同版主任命型

    四、數(shù)據(jù)庫(kù)怎么建立多對(duì)多的關(guān)系,給各具體的access例子

    ACCESS 中不存在多對(duì)多的關(guān)系,只有一對(duì)多的關(guān)系……要實(shí)現(xiàn)多對(duì)多,需要建立中間表,即一個(gè)表C有表A,B的關(guān)系在其中……

    以上就是關(guān)于多對(duì)多聯(lián)系的例子相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    多對(duì)多聯(lián)系的例子(事物間具有多對(duì)多聯(lián)系的例子)

    拼多多對(duì)方已屏蔽了你的消息(拼多多對(duì)方已屏蔽了你的消息是拉黑了嗎)

    工業(yè)設(shè)計(jì)和景觀設(shè)計(jì)(工業(yè)設(shè)計(jì)和景觀設(shè)計(jì)有啥區(qū)別)

    南京景觀設(shè)計(jì)分公司(南京景觀設(shè)計(jì)分公司招聘)