在同一表格中建立多個工作表 數(shù)據(jù)庫表,多對多的關(guān)系怎么建???
數(shù)據(jù)庫表,多對多的關(guān)系怎么建???表、id、名稱和電話有三個字段。表、id、address、Sol有三個字段。關(guān)聯(lián)表,refid,aid,bid,存儲AB表的id。例如,a有a0001,張3139555
數(shù)據(jù)庫表,多對多的關(guān)系怎么建???
表、id、名稱和電話有三個字段。表、id、address、Sol有三個字段。關(guān)聯(lián)表,refid,aid,bid,存儲AB表的id。例如,a有a0001,張313955553A0002,李413977888A0003,王513655566B有b0001,上海234b0002,沈陽332b0003,重慶123。如果希望AB表多對多,只需增加關(guān)聯(lián)表,AB表的基礎(chǔ)數(shù)據(jù)不變,如關(guān)聯(lián)表Ref table:r0001、a0001、b0002、r0002、a0001、b0001、r0003、a0001、B0003、r0004、a0002、B0003通過聯(lián)查,您可以在不破壞基本數(shù)據(jù)表的情況下獲取多對多數(shù)據(jù)。
數(shù)據(jù)庫表,多對多的關(guān)系怎么建?。?/h2>
A:表A、表A id、表A名稱、表A電話有三個字段。
B table,B_uid,B_uaddress,B_usol有三個字段。
關(guān)聯(lián)表,refid,aid,bid,存儲表AB的id,
例如:a has
a0001,zhang3139555533
a002,li41397788888
a003,wang51365566
b has
b0001,Shanghai,234
b002,Shenyang,332
b003,Chongqing,123
如果希望表AB是多對多的,只需要添加關(guān)聯(lián)表,而AB表的基礎(chǔ)數(shù)據(jù)不變,例如:
關(guān)聯(lián)表參照表:
r0001,a0001,b0002
r0002,a0001,b0001
r0003,a0001,B0003
r0004,a0002,B0003
通過聯(lián)查,可以得到多對多的數(shù)據(jù),而不破壞基礎(chǔ)數(shù)據(jù)表。
建立數(shù)據(jù)庫時,既然SQL語言可以實現(xiàn)多表連接,那為什么還要建立表間的一對一,一對多這些關(guān)系呢?
A:一對一、一對多和多對多關(guān)系用于設(shè)計數(shù)據(jù)庫以確定表之間的關(guān)系。它們是設(shè)計數(shù)據(jù)庫以達(dá)到某種范式的手段之一。數(shù)據(jù)庫達(dá)到某一范式的程度越高,數(shù)據(jù)庫表的一致性和完整性就越強(qiáng)。這可以用數(shù)學(xué)證明。
SQL語言實現(xiàn)多表連接,是到數(shù)據(jù)庫階段,通過您的SQL操作來實現(xiàn)您需要實現(xiàn)的功能。
和水庫一樣,前者也處于設(shè)計階段。水壩越高越堅固,決堤的可能性就越小。就像學(xué)生選課程一樣。刪除一門課程后,如果有外鍵,學(xué)生絕對不可能在選課表中選擇這門課程。如果沒有外鍵,很難說。
后者是使用階段,用閘門、水管或水泵抽水,要看你怎么寫。
它們在數(shù)據(jù)庫系統(tǒng)實現(xiàn)階段是不同的,功能也是不同的。
數(shù)據(jù)庫表與表之間多對多關(guān)系怎么處理?
分割關(guān)系。
添加表格。使之符合范式。例如,做學(xué)生選課系統(tǒng)。許多學(xué)生選擇許多課程。這是一種多對多的關(guān)系。這可以寫成三個表。分別。學(xué)生列表(學(xué)號、名稱)課程列表(課程號、課程名稱)選課列表(學(xué)號、課程編號)通過選課列表連接學(xué)生和課程。