輔導(dǎo)君一對(duì)一收費(fèi)表 建立數(shù)據(jù)庫(kù)時(shí),既然SQL語(yǔ)言可以實(shí)現(xiàn)多表連接,那為什么還要建立表間的一對(duì)一,一對(duì)多這些關(guān)系呢?
建立數(shù)據(jù)庫(kù)時(shí),既然SQL語(yǔ)言可以實(shí)現(xiàn)多表連接,那為什么還要建立表間的一對(duì)一,一對(duì)多這些關(guān)系呢?A:一對(duì)一、一對(duì)多和多對(duì)多關(guān)系用于設(shè)計(jì)數(shù)據(jù)庫(kù)以確定表之間的關(guān)系。它們是設(shè)計(jì)數(shù)據(jù)庫(kù)以達(dá)到某種范式的手段之一。
建立數(shù)據(jù)庫(kù)時(shí),既然SQL語(yǔ)言可以實(shí)現(xiàn)多表連接,那為什么還要建立表間的一對(duì)一,一對(duì)多這些關(guān)系呢?
A:一對(duì)一、一對(duì)多和多對(duì)多關(guān)系用于設(shè)計(jì)數(shù)據(jù)庫(kù)以確定表之間的關(guān)系。它們是設(shè)計(jì)數(shù)據(jù)庫(kù)以達(dá)到某種范式的手段之一。數(shù)據(jù)庫(kù)達(dá)到某一范式的程度越高,數(shù)據(jù)庫(kù)表的一致性和完整性就越強(qiáng)。這可以用數(shù)學(xué)證明。
SQL語(yǔ)言實(shí)現(xiàn)多表連接,是到數(shù)據(jù)庫(kù)階段,通過(guò)您的SQL操作來(lái)實(shí)現(xiàn)您需要實(shí)現(xiàn)的功能。
和水庫(kù)一樣,前者也處于設(shè)計(jì)階段。水壩越高越堅(jiān)固,決堤的可能性就越小。就像學(xué)生選課程一樣。刪除一門(mén)課程后,如果有外鍵,學(xué)生絕對(duì)不可能在選課表中選擇這門(mén)課程。如果沒(méi)有外鍵,很難說(shuō)。
后者是使用階段,用閘門(mén)、水管或水泵抽水,要看你怎么寫(xiě)。
它們?cè)跀?shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)階段是不同的,功能也是不同的。
數(shù)據(jù)庫(kù)中一對(duì)一,一對(duì)多,多對(duì)多,怎樣建立關(guān)聯(lián)?
一對(duì)一。
一對(duì)多和多對(duì)一是多個(gè)表,至少兩個(gè)表,一對(duì)多和多對(duì)一是相互的:
主鍵是自己定義的,一般外鍵表引用的對(duì)應(yīng)表的鍵是主鍵;
多對(duì)多有三個(gè)表,一個(gè)是關(guān)系表(中間表);
中間表沒(méi)有公共字段,一般只同時(shí)引用兩個(gè)外鍵,會(huì)出現(xiàn)多對(duì)多