赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

细化解析数据库和应用程序主键表的示例

发布时间:2007.08.20 16:18     来源:赛迪网    作者:Anywhere

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

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

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 细化解析数据库和应用程序的术语和概念 (08-20) · 细化解析存储过程的编写经验和优化措施 (08-16)
· 解析多表连接中各种连接间的区别和联系 (08-13) · 解析:Oracle 10g EM Database Console (08-09)
· 解析1069错误(登录失败无法启动服务) (08-07) · Oracle中对像名大小写敏感性的深入解析 (07-30)
· 易学且易用 小编教您如何架设DNS服务器 (07-29) · Java程序把Word文档直接转换成Html文件 (06-22)
· Google将为iPhone手机提供更多的应用程序 (05-29) · 在linux系统下使用C语言操作临时文件 (03-08)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管