程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 數據庫應用程序 主鍵表的示例

數據庫應用程序 主鍵表的示例

編輯:SyBase綜合文章
 

關系數據庫中的每個表都應該具有主鍵。主鍵是唯一標識每一行的一列或列集合。表中不能有兩個行具有相同的主鍵值。

在示例數據庫中, employee 表存儲與職員有關的信息。它具有名為emp_id 的主鍵列,保存指派給每一職員的唯一 ID 號。保留 ID 號的單列是指派主鍵的常見方式,並且此方式優於名稱和其它標識符,因為它們不一定始終是唯一的。

在示例數據庫的 sales_order_items 表中可以看到更復雜的主鍵。該表保存

與公司訂單上各單獨項有關的信息,並且具有以下列:

•id訂單號,標識某項所屬於的訂單。
•line_id	行號,標識任一訂單上的每一項。
•prod_id	產品 ID,標識所訂購的產品。
•quantity數量,顯示訂購了多少項。
•ship_date	發貨日期,顯示發貨的時間。

特定銷售訂單項是由它所屬於的訂單以及該訂單上的行號標識的。這兩個數字存儲在 id 和 line_id 列中。多個項可以共享一個 id 值 (為多個項對應於一個訂單),或者它們可以共享一個 line_id 號 (不同訂單上的所有第一個項的 line_id 均為 1)。但沒有兩個項同時共享這兩個值,因此主鍵由這兩列組成。

一個表中的信息可以通過外鍵與其它表中的信息關聯。

示例數據庫具有一個保存職員信息的表和一個保存部門信息的表。

department 表具有以下列:

•dept_id	部門的 ID 號。這是該表的主鍵。
•dept_name部門的名稱。
•dept_head_id	部門經理的職員 ID。

為了查找特定職員的部門的名稱,不需要將該職員的部門名稱放入employee 表中。而是在 employee 表包含一列,該列保存與部門列中某一dept_id 值的數字匹配的數字。

employee 表中的 dept_id 列被認為是 department 表的外鍵。外鍵引用包含相應主鍵的表中的特定行。

在此示例中, employee 表 (包含關系中的外鍵)稱作外表外表或引用表引用department 表 (包含引用的主鍵)稱作主表主表或被引用表被引用表。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved