本文共 766 字,大约阅读时间需要 2 分钟。
下面我通过一个小栗子来说明我们应该如何选择主键,外键和唯一键。
现在我们想建立学生表,用来存储,一个系统的登陆信息。建表如下:create table student4( stu_id int primary key identity,--identity表示自增 stu_name nvarchar(10) unique not null, stu_sex nchar(1) not null, stu_address nvarchar(100) unique not null, stu_email nvarchar(50) )
我们要求,以后再使用的过程,我们要让大家使用邮箱注册,并通过邮箱来登陆。
根据上面的需求,我们先说主键的选择。
相信大家一看,我们可以使用邮箱登陆,那么邮箱一定是唯一的,那么用邮箱来做主键吧。其实不然,用邮箱做主键还是有问题滴。问题有如下四点。 1、比如,我后期换邮箱呢,那不就惨了吗。 2、如果其他的表已经关联的本学生表的主键——邮箱,那么在我们更换邮箱后,如果不修改其他表中的外键,那么就会报错。如果要是修改的话,可能工作量将会非常的大。 3、另外,在查询邮箱的的时候,搜索速度非常的慢。 4、如果多个表外键利用学生表的主键,那么就会导致空间的浪费 为此,最好增加一个没有意义的编号为主键,不要 以业务逻辑的字段为主键,,比如,设置一个stu_id ,而不能以邮箱字段为主键其他表,如果需要关联学生表,那需要在表中添加外键来关联学生表,那我们首先的是使用学生表中的主键,万不得已在选择唯一键。
刚才我们在需求中说了,我们要用邮箱来注册和登陆,那么肯定需要让邮箱不能重复,并且,我们的邮箱又不是主键,那我们只能将邮箱设置为唯一键了。这样就能满足我们的需求了。
转载地址:http://bvhbb.baihongyu.com/