主表,從表,關聯表,父表,子表



一、前言


    在數據庫設計中,Hibernate,iBatis等ORM框架的使用中經常聽說主鍵,外鍵,主表,從表,關聯表,父表,子表之類的術語,弄懂它們之前的區別與聯系對於數據庫設計和ORM框架的學習使用是非常有必要的。

 

 

二、概述

 

    下面從數據庫設計角度,ORM框架使用(以Hibernate為例),PowerDesigner軟件以及實際業務角度進行一下介紹。

 

 

 

(1) 數據庫角度而言

 

    主鍵:一般情況下,滿足第一范式的表都有一個主鍵Primary key,用於唯一標示數據庫中的一個字段。


    外鍵:外鍵是相對於數據庫設計中的參考完整性而言,它與主鍵之間是彼此依賴的關系。假設現在有兩個表,產品分類表ProductCategory(主鍵CategoryId)和產品信息表Product(主鍵ProductId),每類產品都屬於一個分類。那么如果產品信息表肯定需要參考產品分類表進行定義。因為如果沒有產品分類表,又何談產品分類呢。所以產品信息表Product需要引用ProductCategory中的主鍵CategoryId 進行產品分類定義,Product表中引用CategoryId的字段就是外鍵。


   在概念模型(Concept Model)中,從產品分類角度看,產品分類和產品之間就是一對多的關系,一個分類下可以有多個產品。從產品角度看,產品和產品分類之間是多對一的關系,多種產品屬於一個分類。


    主表:在數據庫中建立的表格即Table,其中存在主鍵(primary key)用於與其它表相關聯,並且作為在主表中的唯一性標識。(摘自百度百科)


    從表:以主表的主鍵(primary key)值為外鍵 (Foreign Key)的表,可以通過外鍵與主表進行關聯查詢。從表與主表通過外鍵進行關聯查詢。(摘自百度百科)


   關聯表:兩個數據庫及其(數據)表之間的數據的相互依賴和影響關系。

  比如現有某學校三個數據表:學生(學號,姓名),課程(課程名,課程編號),選課(學號,課程號,成績)。選課表中的“學號”,“課程號”必須是另外兩個表中存在的數據,才有意義;而且一旦另外兩表中的某一學生或課程被刪除,選課表中的相應學號或課程號必須自動刪除。這就是一種關聯關系。它實際上是保證數據完整性的一種做法.



   父表,子表的說法其實在PowerDesigner中解釋可能更加恰當,這里就不多說了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM