Cnfan.net中国网络
IT网络技术专家
数据库
 最新专题: 专题 | 分类 | 投稿 | 搜索
 数据库首页 | mysql | Oracle | Sybase | IBMDB2 | PostgreSQL | Informix

轻松接触 数据库应用程序 主键表的示例

  • 2007-12-12 22:10:33  作者:10537  来源:赛迪网  浏览次数:0  文字大小:【】【】【
简介: 关系数据库中的每个表都应该具有主键。主键是唯一标识每一行的一列或列集合。表中不能有两个行具有相同的主键值。 在示例数据库中, employee 表存储与职员有关的信息。它具有名为emp_id 的主键列,保存 ...

关键字: 轻松接触 数据库应用程序 主键表 示例

 

关系数据库中的每个表都应该具有主键。主键是唯一标识每一行的一列或列集合。表中不能有两个行具有相同的主键值。

 

在示例数据库中, 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 表 (包含引用的主键)称作主表主表或被引用表被引用表。


  <欢迎投稿>  <论坛讨论>
 »相关文章  »论坛新贴
精彩文章 活动资讯 今日头条