联合主键和复合主键区别
2015-09-17 17:44
232 查看
什么是数据表的复合主键
所谓的复合主键 就是指你表的主键含有一个以上的字段组成
比如
create table test
(
name varchar(19),
id number,
value varchar(10),
primary key (name,id)
)
上面的name和id字段组合起来就是你test表的复合主键
它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性
一般情况下,主键的字段长度和字段数目要越少越好
联合主键
什么是联合主键?
(主键原则上是唯一的,别被唯一值所困扰。)
顾名思义就是多个主键联合形成一个主键组合
一个简单的例子
主键A跟主键B组成联合主键
主键A跟主键B的数据可以完全相同(困扰吧,没关系),联合就在于主键A跟主键B形成的联合主键是唯一的。
下例主键A数据是1,主键B数据也是1,联合主键其实是11,这个11是唯一值,绝对不充许再出现11这个唯一值。(这就是多对多关系)
主键A数据 主键B数据
1 1
2 2
3 3
主键A与主键B的联合主键值最多也就是
11
12
13
21
22
23
31
32
33
文章来源:http://www.iteye.com/problems/99260
所谓的复合主键 就是指你表的主键含有一个以上的字段组成
比如
create table test
(
name varchar(19),
id number,
value varchar(10),
primary key (name,id)
)
上面的name和id字段组合起来就是你test表的复合主键
它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性
一般情况下,主键的字段长度和字段数目要越少越好
联合主键
什么是联合主键?
(主键原则上是唯一的,别被唯一值所困扰。)
顾名思义就是多个主键联合形成一个主键组合
一个简单的例子
主键A跟主键B组成联合主键
主键A跟主键B的数据可以完全相同(困扰吧,没关系),联合就在于主键A跟主键B形成的联合主键是唯一的。
下例主键A数据是1,主键B数据也是1,联合主键其实是11,这个11是唯一值,绝对不充许再出现11这个唯一值。(这就是多对多关系)
主键A数据 主键B数据
1 1
2 2
3 3
主键A与主键B的联合主键值最多也就是
11
12
13
21
22
23
31
32
33
文章来源:http://www.iteye.com/problems/99260
相关文章推荐
- Google推荐的图片加载库Glide介绍
- 如何使用plsql导出oracle数据建表语句,存储过程,视图。以及表中数据
- Spice Windows Client 利用 USBDk 实现USB重定向
- MVC Kendo总结之-----> Grid
- 电梯系统OO设计
- Yoshua Bengio等大神传授:26条深度学习经验
- 压缩解压操作
- 计算机器内存数量+引入和显示ARDS成员
- Vector的使用
- VM参数简介
- 我的第一篇博文
- 为.NET搭建Linux的开发环境,鄙视那些将简单事情复杂化的人
- Android平台的开发环境的发展演变
- windows7系统下如何安装windows xp系统(无法识别硬盘,删除隐藏分区)
- 动态的django项目
- IOS URL加载系统 UIWebView URL拦截
- 自己实现的JDBC工具类
- hdu5441
- 笔记04 WPF对象引用
- 前端小知识