00:00
那么接下来呢,我们还得看一个东西啊,就是一对多,多对多我们都有了,那么一对一怎么设计,我觉得这个也得给大家讲一讲。一对一怎么设定?我一对一就放一张表,不得了吗?是吧?那一对一就放一张表里。我们在实际开发中有没有可能一对一就拆成两张表,有比如说比如说非常典型的一个系统当中,一般都会有个用户表。用户表,那么用户他一般最基本的信息有用户名跟密码对吧。他除了用户名密码有没有别的信息,别的信息有什么呀,什么家庭住址啊,邮编呀,联系电话呀,性别呀,出生日期呀,身份证号啊对吧。
01:05
有可能你有很多很多信心。明白什么意思吧,好。这张表是不是很大?列很多呀,但是我们用户在登录的时候,我们可能只需要验证什么佣兵和密码。听懂了吧?所以一般情况下会把刚才我所说的这一张大表拆成两张。一张表,专门存用户名跟密码。听懂了吗?再来一张表,存什么?存这个用户的详细信息?就一张表拆成两张表呢,因为用户在登录的时候,他老查哪个表。你不能让他总去查这个大表啊,你让他去查这种列比较少的那个表嘛,就查一个表,这个表是里边就有这个用户名和密码,就单单纯就查这个。但是用户注册之后,他会有很多很多别的信息,除了用户名、密码之外,还有一些别的信息,所以我们在实际的开发过程中,我先说一下吧,我们以前就是这么干的。
02:02
就用户信息拆成两张表去存,一张表是登录表,一张表是用户详细信息表,这么说吧,用户详细信息跟那个用户登录的,这这两张表要不要有关系。肯定得有关系吧,一对一。还没听懂t log in,这是什么表?叫用户登录的表,T夏天info。或者是detail,这叫用户详细信息表,这个地方可能有什么IDID作为什么主见明白,然后接下来我们在这个位置上有什么,有用户名,有密码。来这个ID呢,假如说一啊,用户名呢,就是张三,密码呢,假如说是123,然后把这个拿过来,然后接下来贴过来这块呢,这个ID是二,然后呢,这个是比如说李四,然后密码是456,好了,那这个是用户的一个登录表,然后接下来呢,是用户详细信息表,用户详细信息表这块也有ID对吧?哎,主件,然后详细信息,比如说这个real name真实名字吧。
03:24
是不是真实名字啊,真实名字啊,比如说凤啊,或者是联系方式对吧?哎,等等等等一些别的信息,这是用户详细信息表啊,那这一块我们怎么设计呢。就一对一,怎么设计呢?我现在有个用户信息,比如说这个人就叫什么张三,懂吧,他电话啊,随便写啊,然后接下来还有什么呢?还有像刚才所说的李四的信息啊,这是李四真实的名字啊,李四,然后下边的这个可能是他的电话啊,总之就是说我要一对一,这个记录对应的就是这个记录,这个记录我对应的就是这个记录,一对一怎么做。
04:16
两种方案一对一设计,有两种方案组件共享。这是我先说第一种方案,各位啊,主键共享就是这个是既是主键又是什么外键。能看明白吗?既是主键又是外键,这个外键引用谁引用它。也就这个字段不能随便填,填的东西必须是上面这个东西,再加上你是主键能重复吗?不能,能没空吗?不能,所以您这个要填一,这个就得填二,您这个填二,这个就填一。懂什么意思吧,哎,这样,这是一种方案,好各位还有没有同学知道第二种方案怎么做,这是第一种方案,只是说一对一设计两种方案,一是主键共享,二是外键唯一,啊外键唯一我直接告诉你了,各位啊,来这块有什么不加这个了啊,很单纯的,这是主,这是主键对不对,然后在这加个什么。
05:30
UID加上外键,并且加一个unique约束。就这个位置写。外键你懂吗?这个字段是不是用这个字段好,这个有一和二,也就这个,这只能出现一和二,不能出现一和一啊,因为有什么约束,Unique这个如果是二,这个就是一。
06:00
懂什么意思吗?所以我问大家,这是不是一个一对多的变形?是不是一对多的变形,一对多两张表,多的表加外键,只不过在外键这加了一个什么约束。唯一性约束就变成一对一了。没听懂。听懂了吗?同学们。一对多,咱们上面是不是讲的一对多呀,那我问你一多,如果多的表这个地方加一个唯性约束的话,那是不是就是对一。一个班级对应多个学生啊,你这里边儿的外建,你外建可以写一,可以写一,可以写222,那这个字段用的是这个字段,那如果说我给这个字段添加一个唯一性约束的话,您这个字段就不能重啊,你不能重的话,不就代表一对一吗?这种方案叫外键唯一。各位你需要记住的是,这两种方案你都需要知道,组建共享方案和外建唯一方案,这两种方案都行,都能达到一对一的设计。
07:11
今天把表的设计咱讲完了啊,以后您在哪开发都是这几个关系,哪个一对一,一对多,多对多没了啊,一对一,一对多,多对多,一对一两种方案,一对一两种方案,一逐渐共享,二外键,唯一再往下就是口诀了,一对多两张表,多的表加外键,多对多三张表,关系表两个外键。您把这个口诀背会以后的表的开发,表的设计就很简单了,就不用再去想思考说哎呀,东西多怎么设计来着啊,一对多怎么设计,一对一怎么设计,你把这块的固定模型给他记住,那咱们今天讲的这个叫数据库设计三范式呢,是非常重要的一个内容啊,我再强调一下。啊,因为以后大家设计数据库表完全依据的就是这个范式。
08:01
包括我今天呢,在讲范式的过程当中呢,我给大家列举了一对一,一对多和多对多怎么去设计。啊,所以大家一定一定要把这个给它吃透了。啊,然后呢,再往下各位就是咱们买SQL这块的一个作业了,这个作业34道作业题呢,你就先做先写,每天写个三四个,每天写个三四个,咱们专门找半天时间把那个so给大家讲了34个作业行吧啊。那今天的这个内容呢,比较多啊,比较紧凑,这个多呢,其实就是理论上的东西比较多,我们从哪开始讲的。从约束,从表的约束开始讲的,各位啊,约束,然后呢,存储引擎事物,尤其事物是非常重要的,然后所以这块有个哎,有个简单的理解,视图呢,也简单理解一下啊,但是数据库设计三番式这块,那你必须要掌握,必须要掌握这内容,就是要背的东西。要背的东西啊,行,咱们今天就到这儿啊,今天到这。
09:02
大家知道该干嘛吧,就是下去之后应该干嘛,题得做,你这个题最起码明天这一天应该够你写了啊。
我来说两句