我们上上一篇简单介绍了关系模型是一个存储着数据的二维表,那么这篇文章就介绍介绍关系模型中表与表之间的关系是如何来进行维护的。
首先要明确三个概念,主键,索引,外键。
主键
是指关系表中记录的唯一标识,什么叫唯一标识,就是这个表中任意的两条记录是不能重复的,不能重复是指不完全重复,不是一点都不能重复。从上面的概念我们可以看出主键的作用就是为了区分不同的记录。
ps:补充一下什么是记录
这个表中的每一行代表一条记录,一条记录是有多个字段组成的。这个表有两条记录。
对于主键的要求:我们要明确一点,就是绝对不能出现重复,不能使用任何和业务相关的字段作为主键。例如:如果我们使用name字段作为主键的话,那么数据表中就无法添加和小明一样名字的一条记录,这样就非常的不合理,难道全世界只有你才能叫小明吗?
最最常见的就是把主键的字段名设置为id,主键的生成策略int变量的自增,UUID字符串。但是他们都存在问题,第一种自增的情况会出现,当数据发生迁移的时候,很容易就出现主键的冲突问题。第二种解决了第一种的情况,但是这种方式生成的主键是无序的,无法知道表中数据的插入顺序问题,需要使用其他的字段来进行排序,一般采用时间戳。但是在分布式系统中也存在问题,并发量太大的时候,时间戳的排序就不精准了,怎