一對多關係模型
在“課程花名冊”資料庫中,一位教師可以教授零個或多個課程,而一個課程由一位(且僅一位)教師教授。在“公司”資料庫中,一位經理可以管理零個或多個員工,而一位員工由一位(且僅一位)經理管理。在“產品銷售”資料庫中,一位客戶可以下多個訂單;而一個訂單由一位特定的客戶下。這種關係被稱為一對多關係。
一對多關係不能用單個表來表示。例如,在“課程花名冊”資料庫中,我們可能從一個名為 Teachers 的表開始,該表儲存有關教師的資訊(例如姓名、辦公室、電話和電子郵件)。為了儲存每位教師教授的課程,我們可以建立 class1、class2、class3 等列,但立即面臨建立多少列的問題。另一方面,如果我們從一個名為 Classes 的表開始,該表儲存有關課程的資訊,我們可以建立其他列來儲存有關(一位)教師的資訊(例如姓名、辦公室、電話和電子郵件)。但是,由於一位教師可以教授許多課程,因此其資料會在 Classes 表的許多行中重複。
為了支援一對多關係,我們需要設計兩個表:例如,一個名為 Classes 的表來儲存有關課程的資訊,其中 classID 作為主鍵;以及一個名為 Teachers 的表來儲存有關教師的資訊,其中 teacherID 作為主鍵。然後,我們可以透過將 Teacher 表的主鍵(即 teacherID)(“一”端或父表)儲存在 Classes 表(“多”端或子表)中來建立一對多關係,如下所示。
子表 Classes 中的 teacherID 列稱為外部索引鍵。子表的外部索引鍵是父表的主鍵,用於引用父表。
廣告