資料庫表在建立一對多關係時,一般在哪個表新增外來鍵 有什麼原則嗎

2021-04-26 06:13:55 字數 2735 閱讀 4119

1樓:匿名使用者

在多的關係表建立外來鍵。

可以這麼理解,

在學生表新增gid作為外來鍵,

表示知道乙個學生,可以推出他在哪個班級;

反過來則不行。

資料庫中,一對多的時候外來鍵設定在多的那張表嗎?如果一對一的時候,外來鍵應該設定在**?多對多的時候,

2樓:匿名使用者

首先,外

復鍵引用的那個列在主表制中必須是主鍵列或者唯一列。

所以1:n的肯定把外來鍵建立在n的那張表上。

1:1,一般要看誰是主表,誰是附屬表,外來鍵當然建立在附屬表中。

n:m的情況,需要建立乙個關係表,兩個原表和其關係分別是1:n,1:m

3樓:匿名使用者

設定在具有相同的字段,並且具有唯一的字段內容上。

資料庫建表時一定要設定外來鍵約束關係嗎

4樓:匿名使用者

不一定。

外來鍵約束畢竟是乙個約束,只是保證資料完整性的乙個手段。

資料庫系統本身約束手段是更可靠的。

對於開發來說,可能覺得建立外來鍵關係沒必要,但是到了以後維護階段,或公升級階段,如果沒有這個關係,可能不利維護工作的提公升。表關係的建立,也闡述著具體的業務邏輯關係,增加了可讀性。

在邏輯性,關聯性比較強的時候不妨新增。

其他時候簡單的外來鍵約束也是可以的,不需要一有關係就新增,但是要有其他機制保證資料完整性,畢竟外來鍵對於開發有時候還是有限制。

總的來說前期開發可以不管,後期維護盡量轉移到資料庫本身的約束來建立關係。

在資料庫設計器中,建立兩個表之間的「一對多關係」應滿足的條件是什麼

5樓:匿名使用者

在資料庫的兩個表間建立永久聯絡時,要求兩個表的索引中至少有乙個是主索引。必須先選擇父表的主索引,而子表中的索引型別決定了要建立的永久聯絡的型別。如果子表中的索引型別是主索引或候選索引,則建立起來的就是一對一關係。

如果子表中的索引型別是普通索引,則建立起來的就是一對多關係。

6樓:匿名使用者

對應"多"的表中有乙個外來鍵,指向"一"的表的主鍵

資料庫如何建立表間一對多關係

請問資料庫在建立表的時候如何設計表關係,一對一,一對多,多對多 請高手舉例說明。謝謝!!!

7樓:匿名使用者

1、一對一可以兩個實體設計在乙個資料庫中l例如設計乙個夫妻表,裡面放丈夫和妻子

2、一對多可以建兩張表,將一這一方的主鍵作為多那一方的外來鍵,例如乙個學生表可以加乙個字段指向班級(班級與學生一對多的關係)

3、多對多可以多加一張中間表,將另外兩個表的主鍵放到這個表中(如教師和學生就是多對多的關係)

希望這樣講對你有點幫助!

8樓:匿名使用者

例1:學生選修課程

學生表 (主鍵 學生id)

課程表 (主鍵 課程id)

學生選課表 (聯合主鍵 學生id 課程id)學生表與課程表是實體資料表,學生選課表就是這兩個實體物件間的對應關係,能過這個關係表可以建立起乙個學生選修多門課程的關係。。。

例2:使用者帳戶許可權分配

帳戶資訊表 (主鍵 帳戶id)

角色資訊表 (主鍵 角色id)

為了使乙個帳戶可被指定多重角色,還需要乙個能將「帳戶資訊表」和「角色資訊表」關聯起來的「帳戶角色表(聯合主鍵 帳戶資訊id 角色資訊id)」

9樓:匿名使用者

一對一:我有乙個身份證號 ;

一對多:我有多張銀行卡;

多對多:我是招行、交行、建行的客戶,但是這些銀行使用者均過億。

10樓:匿名使用者

你把因果關係弄倒了,不是建立表的時間選用這樣的關係,而是我們根據現實世界中設計出這樣的關係而建立的表,也就是說我們設計資料庫的目的是解決現實中的問題的,而不是你說的為了設計讓現實去適應系統,而是系統必須適合現實.

關於資料庫設計,先從現實分析e-r(實體-聯絡)模型,資料庫建立的標準就是這個e-r圖的.是現實決定了我們使用的表關係.然後從這個e-r進行資料庫的建立.

所以這些關係都**於現實.

所以這個問題,可以檢視一下資料庫設計,e-r分析等內容.不是一兩個例子能給你說清楚的!

資料庫表 多對多的關係怎麼建啊?

11樓:匿名使用者

a表,a_id,a_name,a_tel三個字段。

b表,b_id,b_address,b_sol三個字段。

關聯表,ref_id,a_id,b_id,儲存著ab兩表的id,比如:a有

a0001,zhang3,139555533a0002,li4,1397788888

a0003,wang5,13655566

b有 b0001,shanghai,234b0002,shenyang,332

b0003,chongqing,123

如果想要ab表多對多的話,只需要將關聯表進行增加即可,而ab兩表基本資料不變,

比如:關聯表ref_table:

r0001,a0001,b0002

r0002,a0001,b0001

r0003,a0001,b0003

r0004,a0002,b0003

通過聯合查詢,就可以得到多對多的資料了,而且不破壞基本資料表。

oracle中的表空間和一般關聯式資料庫中的表一樣嗎 有什麼區別

oracle表空間是個虛擬概念,表是實際儲存在資料檔案中的,但資料檔案可以有多個,為了不用關心表實際是儲存在哪個資料檔案中,所以定義了個表空間的感念,把乙個或者多個資料檔案結合為乙個邏輯上的表空間,表一定是屬於某個表空間的 表和表空間概念不一樣,不管什麼關聯式資料庫。顧名思義,表是存放資料的地方,而...

資料庫課程設計老師一般問什麼,要做資料庫課程設計,但是老師還要叫我們做介面,還有伺服器什麼的

我們當初問的是,整個專案的邏輯,就是要當著老師的面把整個專案的功能 實現的邏輯講清楚 老師這樣做的目的是想看看你對這個專案到底懂了沒有,還有就是這個專案是不是你們做的 謝謝!要做資料庫課程設計,但是老師還要叫我們做介面 還有伺服器什麼的 如果不限制語言的話,可以試著使用c 來構建,特別簡單,基本上就...

現在常用的資料庫有哪些,現在一般常用的資料庫有哪幾種啊 ?

sql server 是 microsoft 微軟bai 的資料產品,它的易用性強du!zhi oracle 是dao oracle 甲骨文 公司的資料產品!號稱回世界上最好的答資料系統!db2 是ibm公司的產品,在全球500強的企業中有80 是用db2作為資料庫平台的!懸賞分都沒有,不幫你回答 ...