資料庫在建立表的時候如何設計表關係

2021-05-17 01:02:49 字數 4169 閱讀 5515

1樓:lj的淡

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

2、一對多可以建兩張表,將一這一方的主鍵作為多那一方的外來鍵

3、多對多可以多加一張中間表,將另外兩個表的主鍵放到這個表中

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

2樓:匿名使用者

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

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

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

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

3樓:匿名使用者

例1:學生選修課程

學生表 (主鍵 學生id)

課程表 (主鍵 課程id)

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

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

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

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

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

4樓:匿名使用者

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

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

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

5樓:匿名使用者

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

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

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

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

sql資料庫中表與表之間的關聯怎麼建立

6樓:智慧小白菜

1、在資料庫視窗中,單擊「建立」中「**」中的「表設計」,開啟表設計視窗。

2、按照需要設計表「1」的表結構,完成後關閉表設計, 命名錶1為「1」按需求確定欄位大小以及是否允許空填。

3、重複上述操作,建立表「2」。

4、單擊「資料庫工具」選項卡中「關係」中的「關係按鈕」,開啟「顯示錶對話方塊」。

5、在顯示的兩個表中,將「2」中的「資料」拖到「1」中資料欄位上,在彈出的編輯關係對話方塊中單擊建立。建立關係完成,關閉「關係」視窗即可。

7樓:李永祥vs皮子

1/, 最常用的一種: 減少重複資料.表a中擁有外來鍵,表b的資料基本是不允許刪除的.這時選擇對 insert 和 update 強制關係即可.

2/,其次,是增加一個從屬表. 如果表a刪除一條記錄時,表b中也隨著刪除一條相關聯的記錄,那麼外來鍵關係中,表a的主鍵是表b的外來鍵。這種關係,實際上表b是表a的從屬表(即表a是父表),選擇對 insert 和 update 強制關係時,如果向表b中插入資料,表a中必須已經存在對應的記錄。

選擇級聯刪除相關的欄位時,刪除表a中的一條記錄,就會刪除對應的表b中的一條記錄。

8樓:匿名使用者

1. 外來鍵 ?

2. select a.* ,b.* from a inner join b on a.id = b.id ?

3. left outer join ?

9樓:匿名使用者

表與表之間是通過主外來鍵連結的

可以通過『資料庫關係圖』進行連結

將要連線的表選中,然後用滑鼠拖動列例如

定義表student、course和sc之間的關係圖。

要求:先要定義好三個表的主鍵sno、**o、(sno,**o)(1) 資料庫「學生管理」節點,在「資料庫關係圖」上擊右鍵,選擇「新建資料庫關係圖」命令,彈出新建資料庫關係圖嚮導,選擇要新增到關係圖中的表student、course和sc,這三個表將出現在新關係圖視窗中。每個表顯示包含的屬性和定義的主鍵,拖動標題欄可以改變它們在視窗中的位置。

(2) 將student表的屬性sno拖動到sc表的sno上,鬆開滑鼠彈出「建立關係」視窗,設定後單擊「確定」按鈕。在student表和sc表之間會自動出現一條連線,說明建立關係成功。同樣的方法可以建立course表和sc表之間的關係。

(3) 單擊關閉按鈕儲存。

(4) 試著修改或刪除student、course和sc表中的資料,看看定義關係後有何作用。

10樓:**art天邊

一般都是設外來鍵,主鍵

11樓:匿名使用者

外來鍵建立表與表之間的關係啊。現在該搞映象了 ,還建表 大型資料庫承受不了啊

12樓:介海可元洲

表與表之間的關聯是在查詢或者是其它sql語句中才用到的。

13樓:澄壯魯和志

通過表的主鍵(pk)和另一個表的外來鍵(fk)建立連線具體可以建立關係圖建立

也可以通過查詢分析器利用sql語句建立

例如:主鍵表a,外來鍵表b,我要建立表a的欄位fa與表b的欄位fb之間的關係,並且要級聯更新相關的欄位,級聯刪除相關的記錄。

create

table

表a(fa

varchar(10)

constraint

pk_主表

primary

key--定義fa為主鍵

)create

table

表b(fb

varchar(10)

notnull

,constraint

fk_從表_主表

foreign

key(fb)

references

表a(fa)

--在fb上定義外來鍵約束

onupdate

cascade

ondelete

cascade

--設定級聯更新及級聯刪除)

如何構建一個完善的資料庫,如何來處理表與表關係.

14樓:匿名使用者

sql server本身就是一個完善的資料庫,提供視覺化程式設計,後臺完成所有拖放處理操作,不管有沒有資料都可以使用,不需要編譯。

一個比較合理的資料庫設計應該考慮資料的互動性和挖掘能力、處理效率以及日誌記錄。

建立資料表,注意以下幾點:

表建立的時候要有主鍵和索引,表與表之間要能使用主鍵相聯絡,舉例說在a表裡我做完一次記錄要生成一個單號,b表裡面是依據單號來做下一個流程,而不是依據記錄的每一條資料

取名儘量使用英文+下劃線,sql server裡對漢字需要轉碼,影響工作效率,按照他的預設編碼方式操作有助於提高資料處理速度

建立資料表的列數不要太多,用編碼規則來建立邏輯

注意欄位儲存空間,限制欄位長度,少用註釋和image

儲存過程儘量簡潔實用

建立檢視,為了別的客戶端使用,儘量建立檢視,做好完整的資料分析,別的介面程式或者客戶端直接就可以拿去使用。做檢視注意幾點:

多個表操作寫在一個檢視裡,不要巢狀太多檢視

連線查詢要適當的篩選

跨伺服器操作檢視,要建立伺服器連結表,儘量使用內網連結,把伺服器連結表做成查詢檢視,放在本地伺服器資料庫裡,這樣就等同本地操作

檢視之間保留連線欄位作為主要索引

建立計劃作業,有計劃地進行資料同步更新和備份標識工作,注意事項:

備份資料儘量放資料庫裡同步複製

計劃任務避開工作高峰期

建立儲存過程,記錄操作日誌,把日誌以資料表的形式儲存,注意事項:

儲存過程對本表操作,不要互動太多表

精簡引數數量,注意引數儲存空間

對記錄修改刪除、更新標記的時候儘量使用時間來索引

建立關係圖,給表與表之間建立直接關係,整理整體挖掘資料效能。

建立計劃更新任務,優化資料庫整體效能。

資料庫如何建立表間一對多關係,資料庫表與表之間多對多關係怎麼處理?

mysql裡面有如下的表 user id username photo id name photo favour 收藏關係表 photo id user id 假設這幾個表都相當大,需要進行分表。我的分表規則是 資料庫表與表之間多對多關係怎麼處理?拆分關係。增加一個表。使之符合正規化。比如做學生選課...

資料庫為什麼要建立表間關係,資料庫建立表間關聯有什麼作用

建立關係,是因為這兩個實體之間本來就存在關係。就像 學生 必須有一個自己的 班級 老師 必須有 課程 這些實體之間本來就存在關聯,為了在查詢資料庫時候,能跟據一個表的資料查詢到另一個表的資料,比如我知道這個學生的編號,我就可以查詢該學生所在的班級,但是這是兩個獨立的表,要是能夠建立關係,就需要把班級...

sql中如何在建立資料庫的同時建立表

暈,加個use 資料庫名不就完事了嗎 create database test gouse test create table dbo users id int not null name varchar 32 collate chinese prc ci as not null passwd bi...