主键(PrimaryKey) 复合主键 用一个无意义 的字段做主键将会更加有利于系统的可扩展性
2012-03-27 16:36
211 查看
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 中并没有强制规定一个表必须有主键,也就是一个表可以没有主键,但 是为一个数据表指定一个主键是一个非常好的习惯。在后边的章节我们将提到用一个无意义 的字段做主键将会更加有利于系统的可扩展性。
相关文章推荐
- Mysql---如何设置字段自动获取当前系统时间及主键自增
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)
- phpcms 2008 sp4的这个版本如何添加一个系统字段
- 分享经验,做一个好用的扩展性好的网站管理系统
- 行转列一个好玩的SQL(列数会视记录数变动,实现系统自定义字段功能)
- 获取一个表的,字段,类型,长度,是否主键,是否为空,注释 等信息~
- 一个简单的复合主键的做关联类的例子(转自JavaEye)
- ms sql server 查询一个表的字段属性和主键
- Mysql复合主键中自增长字段设置问题
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)
- 手动添加删除Linux系统中的一个用户(1)--各字段的含义
- mysql中添加主键和给字段名中间添加一个新的字段
- sql语句获取一个表的主键字段
- 对于一个管理性的软件来讲,数据主键的产生策略是很关键的一点,这个关系到整个系统的基础架构思想。
- 数据仓库系统实现DW与ODS字段类型及长度比对的一个方案
- SharePoint 2013/2010 在一个列表或文档库内移动列表项,文档和文件夹位置而保持last modify by 等系统字段保持不变
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键
- jpa的复合主键中关系中如何配置才能做到级联删除,我现在的问题是现在有一个学生类一个课程类,下面补充
- mysql数据库单表只有一个主键自增id字段,ibatis实现id自增
- 为一个有数据没有主键id的数据表添加主键字段