mysql怎么存儲(chǔ)一對(duì)多 mysql實(shí)現(xiàn)一對(duì)多

mysql 一對(duì)多查詢

查出A表中 id , 其對(duì)應(yīng)B表中字母為A,C

創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為墨脫等服務(wù)建站,墨脫等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為墨脫企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

select id from A where id in (select id from B where 字母 in ('A','C'));

單查B表

select id from B where 字母 in ('A','C')

mysql workbench6.3怎么創(chuàng)建一對(duì)多關(guān)系

參考下面的

table A:

id name

1 a

2 b

table B:

id name

1 k

2 m

3 c

4 d

中間表:

A_id B_id

1 1

1 2

2 3

2 4

mysql 多對(duì)多 怎么設(shè)計(jì)表

1.數(shù)據(jù)庫(kù)中的多對(duì)多關(guān)聯(lián)關(guān)系一般需采用中間表的方式處理,將多對(duì)多轉(zhuǎn)化為兩個(gè)一對(duì)多。

2.通過(guò)表的關(guān)系,來(lái)幫助我們?cè)鯓咏ū?,建幾張表?/p>

一對(duì)一

一張表的一條記錄一定只能與另外一張表的一條記錄進(jìn)行對(duì)應(yīng),反之亦然。

學(xué)生表:姓名,性別,年齡,身高,體重,籍貫,家庭住址,緊急聯(lián)系人

其中姓名、性別、年齡、身高,體重屬于常用數(shù)據(jù),但是籍貫、住址和聯(lián)系人為不常用數(shù)據(jù)

如果每次查詢都是查詢所有數(shù)據(jù),不常用的數(shù)據(jù)就會(huì)影響效率,實(shí)際又不用

常用信息表:ID(P),姓名,性別,年齡,身高,體重

不常用信息表:ID(P),籍貫,家庭住址,緊急聯(lián)系人

解決方案:將常用的和不常用的信息分享存儲(chǔ),分成兩張表

不常用信息表和常用信息表,保證不常用信息表與常用信息表能夠?qū)?yīng)上:找一個(gè)具有唯一性的

字段來(lái)共同連接兩張表。

一個(gè)常用表中的一條記錄永遠(yuǎn)只能在一張不常用表中匹配一條記錄,反之亦然。

一對(duì)多

一張表中有一條記錄可以對(duì)應(yīng)另外一張表中的多條記錄;但是反過(guò)來(lái),另外一張表的一條記錄

只能對(duì)應(yīng)第一張表的一條記錄,這種關(guān)系就是一對(duì)多或多對(duì)一

母親與孩子的關(guān)系:母親,孩子兩個(gè)實(shí)體

母親表:ID(P),名字,年齡,性別

孩子表:ID(P),名字,年齡,性別

以上關(guān)系:一個(gè)媽媽可以在孩子表中找到多條記錄(也可能是一條),但是一個(gè)孩子只能找到一個(gè)媽媽

是一種典型的一對(duì)多的關(guān)系。

但是以上設(shè)計(jì):解決了實(shí)體的設(shè)計(jì)表問(wèn)題,但是沒(méi)有解決關(guān)系問(wèn)題,孩子找不到母親,母親也找不到孩子

解決方案:在某一張表中增加一個(gè)字段,能夠找到另外一張表中的記錄:在孩子表中增加一個(gè)字段

指向母親表,因?yàn)楹⒆颖淼挠涗浿荒芷ヅ涞揭粭l母親表的記錄。

母親表:ID(P),名字,年齡,性別

孩子表:ID(P),名字,年齡,性別,母親表ID(母親表主鍵)

多對(duì)多

一對(duì)表中(A)的一條記錄能夠?qū)?yīng)另外一張表(B)中的多條記錄;同時(shí)B表中的一條記錄

也能對(duì)應(yīng)A表中的多條記錄

老師和學(xué)生

老師表 T_ID(P),姓名,性別

學(xué)生表 S_ID(P),姓名,性別

以上設(shè)計(jì)方案:實(shí)現(xiàn)了實(shí)體的設(shè)計(jì),但是沒(méi)有維護(hù)實(shí)體的關(guān)系

一個(gè)老師教過(guò)多個(gè)學(xué)生,一個(gè)學(xué)生也被多個(gè)老師教過(guò)

解決方案:增加一張中間關(guān)系表

老師與學(xué)生的關(guān)系表:ID(P),T_ID,S_ID

老師表與中間表形成一對(duì)多的關(guān)系,而中間表是多表;維護(hù)了能夠唯一找到一表的關(guān)系;

同樣的學(xué)生表與中間表也是一個(gè)一對(duì)多的關(guān)系;

學(xué)生找老師:找出學(xué)生ID---中間表尋找匹配記錄(多條)---老師表匹配(一條)

老師找學(xué)生:找出老師ID---中間表尋找匹配記錄(多條)---學(xué)生表匹配(一條)

如果MySQL同一張表格的記錄有一對(duì)一的關(guān)系要如何實(shí)現(xiàn)。

在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當(dāng)時(shí)的MySQL的存儲(chǔ)引擎還是ISAM存儲(chǔ)引擎。但是,當(dāng)出現(xiàn)MyISAM存儲(chǔ)引擎之后,也就是從MySQL 3.23開(kāi)始,MySQL單表最大限制就已經(jīng)擴(kuò)大到了64PB了(官方文檔顯示)。也就是說(shuō),從目前的技術(shù)環(huán)境來(lái)看,MySQL數(shù)據(jù)庫(kù)的MyISAM存儲(chǔ) 引擎單表大小限制已經(jīng)不是有MySQL數(shù)據(jù)庫(kù)本身來(lái)決定,而是由所在主機(jī)的OS上面的文件系統(tǒng)來(lái)決定了。

而MySQL另外一個(gè)最流行的存儲(chǔ)引擎之一Innodb存儲(chǔ)數(shù)據(jù)的策略是分為兩種的,一種是共享表空間存儲(chǔ)方式,還有一種是獨(dú)享表空間存儲(chǔ)方式。

當(dāng)使用共享表空間存儲(chǔ)方式的時(shí)候,Innodb的所有數(shù)據(jù)保存在一個(gè)單獨(dú)的表空間里面,而這個(gè)表空間可以由很多個(gè)文件組成,一個(gè)表可以跨多個(gè)文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說(shuō),Innodb的單 表限制基本上也在64TB左右了,當(dāng)然這個(gè)大小是包括這個(gè)表的所有索引等其他相關(guān)數(shù)據(jù)。

而當(dāng)使用獨(dú)享表空間來(lái)存放Innodb的表的時(shí)候,每個(gè)表的數(shù)據(jù)以一個(gè)單獨(dú)的文件來(lái)存放,這個(gè)時(shí)候的單表限制,又變成文件系統(tǒng)的大小限制了。

標(biāo)題名稱:mysql怎么存儲(chǔ)一對(duì)多 mysql實(shí)現(xiàn)一對(duì)多
分享鏈接:http://muchs.cn/article26/dohdscg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站改版、域名注冊(cè)、網(wǎng)站策劃、網(wǎng)站維護(hù)網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)