主键(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 中并没有强制规定一个表必须有主键,也就是一个表可以没有主键,但
是为一个数据表指定一个主键是一个非常好的习惯。在后边的章节我们将提到用一个无意义
的字段做主键将会更加有利于系统的可扩展性。

在jpa的JpaRepository需要对符合主键@EmbeddedId 中的一个字段进行查询的用法

在jpa的JpaRepository需要对符合主键@EmbeddedId 中的一个字段进行查询的用法: 在JpaRepository Interface中使用findByIdRoleId...
  • remote_roamer
  • remote_roamer
  • 2016年09月30日 00:09
  • 2218

mysql设置联合主键的意义

联合主键的意义:用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数。 一般...
  • qq383264679
  • qq383264679
  • 2015年12月25日 15:08
  • 20572

索引,索引的优缺点,普通索引,唯一索引,主键索引,联合主键,复合主键---数据库中的几个概念的理解。

索引概念的理解 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她, 则与在表中搜索所有的行相比,索引有助于更快地...
  • qq_27093465
  • qq_27093465
  • 2016年09月20日 10:43
  • 3689

数据库主键设计-用GUID还是Int(int32,int64)做主键(primaryKey)

数据库主键设计-用GUID还是Int(int32,int64)做主键(primaryKey) 使用INT做主键的优点:     1、需要很小的数据存储空间,仅仅需要4 byte 。     2、...
  • huwei2003
  • huwei2003
  • 2015年12月04日 18:21
  • 4491

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

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

Hibernate中对数据库复合主键的支持.pdf

  • 2007年10月07日 12:13
  • 537KB
  • 下载

Hibernate复合主键

  • 2008年10月27日 18:08
  • 6KB
  • 下载

复合主键@IdClass

  • 2012年05月18日 17:24
  • 37KB
  • 下载

hibernate复合主键设置

  • 2011年04月29日 11:53
  • 2KB
  • 下载

Hibernate复合主键视频2

  • 2007年08月27日 19:29
  • 9.77MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:主键(PrimaryKey) 复合主键 用一个无意义 的字段做主键将会更加有利于系统的可扩展性
举报原因:
原因补充:

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