資料庫實體間有三種對應關係:一對一,一對多,多對多。
一對一關係示例:乙個學生對應乙個學生檔案材料,或者每個人都有唯一的身份證編號。
一對多關係示例:乙個學生只屬於乙個班,但是乙個學院有多名學生。
多對多關係示例:乙個學生可以選擇多門課,一門課也有多名學生。
這三種關係在資料庫中邏輯結構處理分析:
1.一對多關係處理:
我們以學生和班級之間的關係來說明一對多的關係處理方法。
假設現有基本表學生表(學號,姓名,……),班級表(班級號,備註資訊,……)。
方法一:
新增乙個關係表,用來表示學生與班級的屬於關係,該關係表包含字段(學生號,班級號)。通過學生號與班級號的對應關係表示學生屬於的班級。
方法二:
在學生表中新增字段(班級號),該欄位作為學生表的外來鍵與班級表中的班級號關聯。每乙個學生實體在班級號字段的值,表示該學生屬於的班級。
小結:一般情況下,一對多關係採用方法二來處理。一對多的兩個實體間,在「多」的實體表中新增乙個字段,該字段是「一」實體表的主鍵。
2.多對多關係處理:
在多對多關係中,我們要新增加乙個關係表。如在上面示例中,在學生表和課程表的基礎上增加選課表來表示學生與課程之間的多對多關係。在選課表中,必須含有的屬性有學生號和課程號。(學生號,課程號)這個屬性集剛好也就是選課表的關鍵字。
資料庫 一對一,一對多,多對多
一對一 就是說a表中的一條記錄對應著b表的一條記錄。大家可能會覺得這不是變得複雜了嗎?其實不然,如果,當一張表的字段過於太多,而很多字段可能只有在某些情況下,才會使用到,這時也可以考慮使用一對一設計。條件 建立單獨的表就行了,優點 1.便於管理 可提高一定的查詢速度 2.減輕 cpu 的 io 讀寫...
資料庫的一對一,一對多,多對多
關聯對映 一對多 多對一 存在最普遍的對映關係,a 表中的一行可以匹配 b 表中的多行,但是 b 表中的一行只能匹配 a 表中的一行。只有當乙個相關列是乙個主鍵或具有唯一約束時,才能建立一對多關係。簡單來講就如球員與球隊的關係 一對多 從球隊角度來說乙個球隊擁有多個球員 即為一對多 多對一 從球員角...
資料庫的 一對多 多對一 一對一 多對多 關係
關聯對映 一對多 多對一 存在最普遍的對映關係,簡單來講就如球員與球隊的關係 一對多 從球隊角度來說乙個球隊擁有多個球員 即為一對多 多對一 從球員角度來說多個球員屬於乙個球隊 即為多對一 資料表間一對多關係如下圖 關聯對映 一對一 一對一關係就如球隊與球隊所在位址之間的關係,一支球隊僅有乙個位址,...