Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019

下列各節顯示資料庫數據表關聯的設計方式。 提供的物件名稱可讓您輕鬆地在 Northwind 2.0 Starter Edition 資料庫中進行檢查。

若要開啟顯示六個數據表及其間關聯的關聯圖,請選取 [ 資料庫工具 ] > 關聯圖]

資料庫關聯圖

此圖表會顯示六個數據表。 在圖表中,數據表之間的線條可識別它們之間的關係。 行尾 (∞) 1 和無限符號代表關聯 (的一端,例如,一個客戶) ,以及關聯的多端。 例如,一位客戶會提交許多訂單。 如需詳細資訊,請參閱 數據表關聯指南

下列原則適用於 Northwind 2.0 Starter Edition 中的數據表,以及一般數據表。

主鍵      唯一識別數據表中的每一筆記錄。 所有數據表都有主鍵。 在關聯圖中,按鍵符號可識別這些主鍵。 主鍵命名慣例是以其所在數據表命名,例如「TableNameID」。 

效率    為了獲得更好的效能和更有效率的儲存空間,主鍵應為數值。 此外,讓 Access 自動為每一筆新記錄的主鍵產生新的唯一值也比較方便。 [自動編號] 資料類型有兩種特性。 [自動編號] 是非有意義的數字,沒有其他用途。 如需詳細資訊,請參閱 新增 [自動編號] 字段做為主鍵

外鍵      根據數據表是否與資料庫中的其他數據表相關,數據表也可以有一或多個外鍵。 外鍵包含的值會對應到相關數據表主鍵中的值。 

唯一索引      數據表中的其他欄位也可能有自己的唯一索引,例如 OrderStatus.StatusCode。 即使 StatusCode 本身不是主鍵,但 OrderStatus 數據表中有兩個具有相同程式代碼的 [訂單狀態] 是不合邏輯的。 唯一索引會告訴 Access 避免該欄位中的值重複。

非唯一索引      數據表可能也有能加速搜尋的索引,並排序這些欄位,例如 Orders.OrderDate。 您可以在同一天下許多訂單,而您通常想要搜尋訂單日期並排序。 該欄位上有一個非唯一的索引,可加速搜尋和排序。

數據表和功能變數名稱    您可以用任何您想要的方式為專案命名,但一致性很重要。 我們建議數據表和功能變數名稱應為一個或多個文字,兩者之間不要有空格,且不包含特殊字元,例如斜線 (/) 、井字型大小 (#) ,或百分比 (%) 。 例如,使用 OrderDate,但不使用訂單日期;使用 OrderNumber 或 OrderNo,但不使用 Order#。 

駱駝    將單字大寫以醒目提示名稱的個別部分,例如 OrderDate,但不要醒目提示 Orderdate 或 orderDate。

必要值    此原則會說明商務規則對於應用程式的重要性。 在某些情況下,某些欄位中需要值或特定值。 例如,在不知道下單客戶的情況下,什麼是「訂單」? 這表示 CustomerID 是 [訂單] 資料表的必要字段。 

匯出欄位      Access 支援數據表中的匯出欄位,例如 Employees.FullName 字段。 您可能會想要在查詢中建立匯出字段,而不是在數據表中建立計算欄位。

附件欄位      Access 支援附件字段,例如 Employees.Picture,其中包含員工的圖片。 附件可以儲存影像、文件、電子郵件及其他二進位資訊。 附件在資料庫中佔用許多空間。 改為將附件儲存在檔案伺服器上更有效率。

多重值欄位    顧名思義,多重值字段會在單一字段中儲存一或多個值,例如 Employees.Title。 我們建議您謹慎使用,特別是如果您想要將資料庫升級。 大部分其他資料庫系統沒有這些資料庫系統,因此需要大量重新運作。 

如需數據類型的詳細資訊,請參閱數據類型和字段屬性簡介。

本節討論每個數據表最重要的功能。 若要檢閱數據表的設計,請在 [導航窗格] 中選取該數據表,以滑鼠右鍵按兩下該資料表,選擇 [ 設計檢視],或選取 [ 資料庫工具 > 關聯 圖],然後以滑鼠右鍵按兩下資料表物件。 如需詳細資訊,請參閱 數據表簡介

重要: 避免使用可能會導致命名衝突的保留字。 如需詳細資訊,請參閱 瞭解 Access 保留字和符號

員工數據表

此表格儲存 Northwind 員工的相關信息。 

領域

描述

FirstName、LastName

這兩個名稱都是必要的,而在北風中,它們必須是唯一的組合。 在數據表設計中,當您開啟 [ 索引 ] 對話框時,您可以看到 FirstName + LastName 有唯一索引。 由於 FirstName 和 LastName 是唯一編製索引,因此 [北風] 資料表無法儲存兩個名稱相同的員工。 在其他情況下,您可以使用不同的商務規則。

FullNameFNLN, FullNameLNFN

查看匯出欄位的表示式屬性,以瞭解 Access 如何合併匯出欄位中的值。 若要包含中間名縮寫,請將它新增到元件之間具有適當間距的現有表達式。

電話欄位

手機的商務規則是員工偏好設定比服務類型更相關。 因此,主要和次要電話號碼是用於行動電話、辦公室、住家電話等等。

稱呼

[問候語] 是 [簡短文字] 字段。 若要說明 Access 中的多重值欄位功能,它是具有預先定義值可編輯清單的下拉式方塊。 簡短的靜態清單通常是多重值欄位的候選字段,因為這些字段不會經常變更。

JobTitle

JobTitle 是另一個必要欄位。

客戶數據表

此表格儲存 Northwind 客戶的相關信息。 

領域

描述

CustomerName

Northwind 的客戶是企業,需要有客戶名稱。 不過,與員工名稱不同的是,索引並不是唯一的,讓兩個或多個客戶擁有相同的名稱。

PrimaryContactFirstName、PrimaryContactLastName、 PrimaryContactJobTitle

主要聯繫人的名字和姓氏及職稱不需要,因為客戶可能沒有一個人做為其主要聯繫人。 聯繫人不得為訂單提供職稱。

BusinessPhone

Northwind 每位客戶只需要一個電話號碼,不過這可讓客戶擷取多個電話號碼或客戶的聯繫人。 在實際情況下,較複雜的商務規則通常會套用至連絡資訊。

位址、縣/市 縣/市、郵遞區號

Northwind 需要一個位址,才能將訂單寄送給客戶。 客戶只能有一個一般位址。 在實際情況下,客戶通常會有個別的帳單、出貨或其他位址。 貴組織的其他商務規則需要額外的欄位。

注意事項

[備忘稿] 字段是長文字數據類型,儲存最多 1 GB 的文字。 這可讓您輸入客戶的詳細批注,以便在後續的排序情況下使用。

訂單數據表

此表格儲存 Northwind 訂單的相關信息。 

領域

描述

OrderDate、ShippedDate、PaidDate

訂單需要三個日期。 它們都是 [日期/時間] 數據類型,但有兩種格式。 OrderDate 有一個日期和時間,因為您可能有興趣分析一天中不同部分的訂單量。 針對另外兩個日期,只需要日期。 ShippedDate 和 PaidDate 的數據表驗證規則可確保這些日期不會早於 OrderDate。

OrderStatusID

訂單狀態會指出訂單在 [北風] 工作流程中的所在位置。 訂單會移至四個階段: > 發票 - > 出貨 - > 關閉。目前 OrderStatus 的外鍵會使用 OrderStatus 查閱表格中的 OrderStatusID。 使用狀態查閱表格可確保只有四個預先定義的狀態可以指派給訂單。

訂單詳細數據表

此表格會儲存 Northwind 訂單詳細數據的相關信息。 

領域

描述

OrderID

[訂單詳細數據] 數據表中的每個明細項目必須屬於 [訂單] 數據表中的一個 [訂單]。 OrderID 是識別該訂單的外鍵。 如先前所述,包含一或多個明細專案的一筆訂單會說明一對多關係。

ProductID

[訂單詳細數據] 資料表中的每一筆記錄都包含訂購產品的產品標識碼。 ProductID 是 [訂單詳細數據] 資料表中的外鍵,可識別該順序的產品。 這也是一對多關係。

OrderID+ ProductID

如您在 [員工] 數據表中所看到的,多個字段可以擁有唯一的索引。 在 [訂單詳細數據] 數據表中,OrderID+ProductID 上的唯一索引可確保每個訂單只包含產品一次。 當您從功能區開啟 Index 屬性表時,您會看到這個唯一索引。

產品數據表

此表格儲存 Northwind 產品的相關信息。 

領域

描述

ProductCode

除了主鍵 ProductID 之外,Northwind 產品還具有人性化、唯一索引的產品代碼。 員工通常會參照產品代碼,而非主鍵值。 產品代碼是包含類別指定和數位的複合值,例如 B-1 表示「飲料」,產品 1。

[產品名稱], 產品描述

除了簡短的文字產品名稱之外,產品也適用冗長的文字描述。 此值可用於型錄描述或回答客戶問題。

UnitPrice

所有產品都會以單價銷售,以簡化資料庫做為功能展示的每個專案。 在大多數實際情況下,價格通常會大幅複雜。

另請參閱

Northwind 2.0 Starter Edition

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。