博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
主键、外键
阅读量:5917 次
发布时间:2019-06-19

本文共 914 字,大约阅读时间需要 3 分钟。

什么是主键、外键

关系型数据库一条记录中有若干个属性,若其中一个属性组(一个或者多个字段)能唯一标识一条记录,该属性组就是一个主键。主键是能确定一条记录的唯一性标识。

外键用于与另一张表的关联,是能确定另一个张表记录的字段。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。外键的目的是控制存储在外表中的数据。

主键、外键的作用

主键保持了数据的唯一性,外键保证了数据的一致性、完整性。

主键的设计原则

① 主键应当是对用户没有意义的;

② 主键应该是单列的,以提高连接和筛选操作的效率;

使用复合键通常基于两点考虑:其一主键应该具有实际意义,然而,让主键具有意义只不过是给人为地破坏数据库提供了方便。其二是利用这种方法可以在描述多对多关系的连接表中使用两个外部键来作为主键,但是,复合主键常常导致不良的外键,即当连接表成为另一个从表的主表,而依据上面的第二种方法成为这个表主键的一部分,然,这个表又有可能再成为其它从表的主表,其主键又有可能成了其它从表主键的一部分,如此传递下去,越靠后的从表,其主键将会包含越多的列了。

③ 永远不要更新主键;实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

④ 主键不应该包含动态变化的数据(如时间戳、创建时间列、修改时间列等);

⑤ 主键应该由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机。

数据库主键选取策略

① 自动增长型字段。

② 手动生成字段。

③ 使用UniqueIdentifier SQL Server提供一个UniqueIdentifier数据类型(16字节),并提供一个生成函数NEWID(),生成一个唯一的UniqueIdentifier。

④ 使用COMB类型。保留UniqueIdentifier的前10字节,后6字节表示生成时间。


 内容来源于网络 

转载于:https://www.cnblogs.com/wangrui1587165/p/9969532.html

你可能感兴趣的文章
Change locale of Netbeans
查看>>
结合项目实例 回顾传统设计模式(四)工厂模式(简单工厂、普通工厂、抽象工厂)...
查看>>
java基础(三章)
查看>>
Eclipse SVN 冲突的 介绍 及 四种解决方式
查看>>
Python学习笔记__19.1章 HTTP协议
查看>>
df命令、du命令、磁盘分区
查看>>
部署LNMP 、 Nginx+FastCGI 、 Nginx高级技术
查看>>
IT经理在未来几年中的生存指南
查看>>
第一次写博客---》记录贴
查看>>
家庭服务器数据中心能实现的应用其实不止这些
查看>>
Spring Cloud综合实战 - 基于TCC补偿模式的分布式事务
查看>>
如何在gitlab 数据备份
查看>>
CDH HDFS文件系统垃圾间隔设置
查看>>
java抽象数据类型
查看>>
CentOS7_LAMP-https-discuz搭建,WordPress搭建及phpMyadmin搭建_2015091902
查看>>
postgres 定期备份shell
查看>>
写在C#.NET通用权限管理系统组件源码销售额突破(23000元/月)大关,客户数量超过156人...
查看>>
大哥你都有房子有车子还拿着双份工资收入,不能总想让兄弟免费来杭州帮忙啊,开不来这个口啊...
查看>>
响应式网页设计:web产品RWD概念
查看>>
RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
查看>>