从零学SQL——2.关系模型
做数据运营,准确的是标签系统运营的时候,需要找数据组拿每日用户点击情况。
拿哪些数据,就要告诉他们,我需要的指标。当时苦恼过,我要的【点击词、点击query、APP来源】等这些组成的集合叫什么,学了SQL了之后明白,他们每一个都是一个字段。
主键
每一条记录是不能重复的,如果数据是用户实际点击数据,无法保证不会有两个人点击同样的词。如果这里需要区分,就需要加入一个区分它们的字段,比如ID。能区分两条记录的字段,叫做【主键】。
注意:
1.主键最好不要修改
由于主键的作用十分重要,如何选取主键会对业务开发产生重要影响。如果我们以学生的身份证号作为主键,似乎能唯一定位记录。然而,身份证号也是一种业务场景,如果身份证号升位了,或者需要变更,作为主键,不得不修改的时候,就会对业务产生严重影响。
所以,选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。
因此,身份证号、手机号、邮箱地址这些看上去可以唯一的字段,均不可用作主键。
作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。
2.常见的可作为id字段的类型有:
-
自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键;
-
全局唯一GUID类型:使用一种全局唯一的字符串作为主键,类似
8f55d96b-8acc-4636-8cb8-76bf8abc2f57。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。
对于大部分应用来说,通常自增类型的主键就能满足需求。
外键
通过某个字段,可以把数据与另一张表关联起来,这种列称为外键。
外键不是通过列名实现的。就是说,想要定义一个外键,不是两个表某一列列名相同,而是要定义一个外键约束。
具体代码见:https://www.liaoxuefeng.com/wiki/1177760294764384/1218728424164736

浙公网安备 33010602011771号