主键(PrimaryKey) 复合主键 用一个无意义 的字段做主键将会更加有利于系统的可扩展性

转载 2012年03月27日 16:36:47
1.2.6 主键(PrimaryKey)
员工表中的每一行记录代表了一个员工,一般员工的名字就能唯一标识这一个员工,但
是名字也是有可能重复的,这时我们就要为每一名员工分配一个唯一的工号:
工号 姓名 部门 入职时间
001 马小虎 产品开发部 2003年5月22 日
002 王二小 技术支持部 2005年7月17 日
003 白展堂 后勤部 1998年3月27 日
004 钱长贵 销售部 2001年3月3日
005 李达最 后勤部 2005年11月11日
006 王二小 产品开发部 2005年3月22 日
这样就可以通过这个工号来唯一标识一名员工了。当老板下令说“把王二小提升为副总”
的时候,我们就要问“公司有两个王二小,您要提升哪一个?”,老板可以说“技术支持部
的王二小”,但是更好的方式,那就是说“提升工号为的002 员工为副总”,因为只有002
这个工号才能唯一标识一名员工。这里的“工号”被称为员工表的“主键”(PrimaryKey),
所以我们可以说能唯一标识一行记录的字段就是此表的主键。
有的公司比较懒惰,不想为员工分配工号,只是硬性规定:一个部门中员工的姓名不能
重复,有姓名重复的必须调换到其它部门。这样“部门”和“姓名”这两个字段加在一起就
能唯一标识一名员工了,这里的“部门”和“姓名”两个字段就被称为“复合主键”,也就
是任何一个字段都不能唯一标识一行数据,只有构成“复合主键”的所有字段组合起来才能
唯一标识这一行数据。
在大多数DBMS 中并没有强制规定一个表必须有主键,也就是一个表可以没有主键,但
是为一个数据表指定一个主键是一个非常好的习惯。在后边的章节我们将提到用一个无意义
的字段做主键将会更加有利于系统的可扩展性。

相关文章推荐

关系数据库中无意义代理主键的生成与JDBC实现总结

(原文出自:http://www.theserverside.com/news/thread.tss?thread_id=63243) 在Java应用中代理主键的生成策略会因数据库甚至JDBC驱...
  • caijb
  • caijb
  • 2011-11-19 07:58
  • 656

hibernate映射中复合主键

  • 2008-12-07 16:45
  • 11KB
  • 下载

SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键

我们来介绍一下:数据库是如何存储数据的。数据库是如何存储数据的来看一个小例子现在,假如我们现在想存储 员工的信息。也就是说:我们来通过这个例子来看看 字段、记录、表 是一个什么东西。我们下面通过存储一...

Hibernate复合主键视频2

  • 2007-08-27 19:29
  • 9.77MB
  • 下载

复合主键

一、复合主键映射        复合主键映射需要在映射配置文件中使用标签,该标签是指将一个类指定为相应的复合主键,它的name属性需要指定类文件中定义的属性值,并在该标签中添加子标签。   ...

Hibernate复合主键part1

  • 2007-08-23 19:03
  • 9.77MB
  • 下载

Hibernate复合主键

  • 2008-05-14 15:00
  • 62KB
  • 下载

Hibernate4学习总结(3)--注解形式的基础映射,主键映射,基本属性映射,复合属性映射,继承映射。

Hibernate Annotation即hibernate注解,可以通过另一种方式将持久化类转化成表的相关信息,可以简化hibernate的配置文件。本文主要对Hibernate的注解进行讲解,由于...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)