00:00
好,我们继续来上课,那么今天呢,我们主要来了解一下我们CMS这个项目的需求,然后通过这个需求呢,我们来设计出我们项目中所需要用到的这些数据表,然后呢,根据这些需求以及这些功能,我们干嘛呢?再来编写出我们所需要的SQL语句啊,这是咱们今天的主要内容,好了,那我们先来看一下啊,针对于CMS,首先我们先来了解第一点,CMS我们知道叫什么叫做内容管理系统,对吧?哎,有内容管理系统好了,那么在这个基础之上,我们再要去掌握的,或者是我们再要去了解的是什么呢?就是它都有哪些功能啊,都有哪些功能。哪些功能对吧,哎,或者说都有哪些操作流程。是不是这些就是我们要要了解的对不对?那么这个时候你想我们要想,比如我们想做这个系统,我们是不是肯定得知道这些东西,没错吧,那知道这些东西这个时候需要什么,是不是就需要我们的项目需求分析说明书了,哎,那OK,这是一个很专业的一个项目需求说明书啊,那么之前我也跟大家说了,因为之前我们用不到对吧,我说大家可以看一看就行了,现在我们没有必要对吧?那现在我们能大家就要好好看一下了啊,文档的介绍,包括编写的这个说明,项目的背景,适用人员这些大家下来自己看,这些文字性的我就不给大家说了啊,那么我们直接来看。
01:32
这里边有系统功能的一个结构,对吧?那么通过这个结构我们能了解到这里边会有哪些功能,没错吧,通过这些功能我们就要去干嘛,去找实体,去找实体,那么什么叫实体呢?在咱们这里面,实体实际上就是实体与关系模型的一个基本对象,也是咱们现实世界中各种事物的抽象,凡是可以相互区别开并可以被识别的是。物概念等对象都可以会称为什么称为实体啊,那么在咱们数据库里面呢,我们一个实体就可以理解为是一个什么,一个数据表啊,就好比一个Excel表格一样,一个实体就是一个Excel表格,就是这个意思啊,因为它是关联数据库嘛,所以我们先要去找到这些实体才可以啊。
02:18
好了,那咱们来看,在这个功能结构里边,它会分为前台跟后台对吗?那么不管是哪台,那么这里边的内容咱们来看啊,比如说内容展示,这里面会包含什么?首页的管理对吧?然后呢,列表的管理,以及内容的管理对吧?还有什么,还有搜索管理,这些是不是都是根据什么,根据我们文章相关的。对不对,哎,包括个人中心里面有哪些呢?比如个人的这些登录注册呀,对吧,消息呀,动态呀,个人的这个,呃,空间管理,个人的信息管理是不是这些。对吧,那OK,那现在咱们来看,通过这两块我们是不是就可以区分开,或者可以画找到两个实体,哪两个实体我们要有用户。
03:02
没错吧,哎,有了用户是不是还有这些相关的信息,而且我们还有什么,还要有文章,有了文章是不是还会有这样的相关的信息啊,没错吧,哎,那OK,再往后你看后台这里边也一样,登录注册对吧,操作界面,然后常规管理公告管理好,遇到公告管理,那是就证明我们网站上是不是还要显示公告模块啊。对不对,那公告是不是也是我们的实体,包括你看友情链接对吧,相册,图片栏目,文章,幻灯片对吧,用户是不是都是可以被我们称之为实体的。哎,所以根据这些功能我们来干嘛呢?我们来去设计我们的实体啊,好了,包括在下面也告诉我们什么这个系统的流程图,你看内容管理系统。模块为什么浏览者,会员,网站管理者等提供一个交流平台对吧?根据角色的不同分别拥有不同的操作权限,那么这是它的操作流程图,那么游客登录以后可以要怎么样?这是访问的对不对?这是它的一个流程,然后呢,如果是会员,当他登录的时候,如果是会员,那怎么办?我们是不是就要。
04:07
这个给他这些操作对不对,如果不是会员,他想注册,是不是还可以给他提供注册的功能,没错吧?哎,那么这个时候你看所有跟会员相关的,他是不是就是我们需要用户的这么一个实体来帮我们展示啊。没错吧,哎,包括往下来,他这里边又介绍,那这是什么,这是咱们前台的。对吧,如果是管理者登录,他可以登录网站的前台,或者登录网站的后台,没错吧?那登录前台是刚才这些这一块的功能,那登录后台呢,后台里面有什么功能,有对应的这些功能,没错吧?有管理用户的功能,那你看是不是还是咱说到用户,用户是不是就是我们已经找到了这个实体,对吧?然后有网站的编辑对吧?那就是什么公告啊,有情链接呀,相册呀,常规的我们已经做完了对不对?哎,那个图片呢,栏目啊,然后文章管理呢,就有什么我们这个文章的这个增删改查呀,对吧?还有幻灯片呢,哎,这是什么,这是不是我们都是我们找到的实体啊。对不对,那OK,那比如说现在我们找到的实体有这么多。
05:03
啊,通过他这些给我们划分的这些什么需求,对吧?当然啊,下面还有更详细的,那大家就可以下来以后挨个来看一看啊,这个就是最标准的我们项目的需求文档,那咱们来看在这里边,我们刚才通过我们了解我们C需要的功能,对吧?内容管理系统主要是针对内容再去做操作,那我们会分为什么有用户实体。对吧,然后还有什么实体啊,还有我们的这个栏目实体以及我们的文章,对吧,还有呢友情。链接对吧,以及我们的广告还有什么,还有我们的这个灯片。对吧,这是刚才我们所找到的对吧,以及我们的公告。等等,这些是不是都是,哎包括什么相册呀,对吧?哎,用户组啊,动态呀,评论呢,对吧,比如说再加一个评论,哎这些是不是都是我们的实体啊,哎,那咱们说了每一个实体就是什么呢?就是一个。
06:05
一张表啊,在我们数据里边,每一个实体就是一张表,好好比说在咱们CMS里边,我们找到了这几个,这里是七个对吧,找到了这七个实体,那么找到这七个实体以后,接下来干嘛呢?接下来我们就要为这些实体去找属性啊,为实体去找属性,那好,那找属性的话,那咱们就看,比如说以用户为例啊。来,在我们这里边,我来个画图啊。这里边。用它吧。比如说我们以用户为例。用户,那么用户里边的属性都要有哪些?首先咱们说了是不是要有一个编号啊,你每加入用户是不是都有一个编号,对不对,所以这里边有一个编号。编号对吧,那有了编号还有什么呢?还要有我们的用户名吧,哎,那这里边叫做。
07:02
用户名对吧,那有了用户名呢,那我们还要有什么密码吧?哎,这里边再往里边写,还有什么,还有密码,有了密码以后呢,还有什么,还要有我们的这个。性别。对吧,然后以及年龄。年龄,然后还有什么,还有电话。变。画对吧,然后还有什么呢,还有我们的这个,呃。再来一个。嗯,年龄变化。对吧,我最终给它加密成32位的一个长度吧,哎,当然啊,我们现在没有学过那么多的约束啊,我们只处以一个组件的约束,那像用户名,用户名能重复吗?比如说我当前用户名叫徐枭雄,那下一个再来的用户名还能叫徐枭雄了吗?是不不行了,诶一般用户名是不重复的,对吧?那这种情况下,我们后期会有两种方式,一般我们用阿贾克斯去做验证,这是第一点,第二点呢,我们会把它设置为一个唯一索引啊,唯一索引,但现在我们先不需要管它啊,有大家不需要了解我说的是什么,你只需要知就行了啊,然后再邮箱我们也知道,我直接给。
08:23
给多少,给他60个长度够了吧,哎,然后也一样,这空。好了,然后再往下还有什么,还有这个pic头像,头像是经过上传的,那么我们上传的所有的图片的那个用那个图片名称,我是不是都是加密处理的,对吧?返回32位的字符串,加上一个点g PEG,这是最长的了,对吧?3334353637,那我是不是就可以直接差37位了。对不对,哎,然后也一样飞空,然后我们也可以比如说给他一个默认的,因为我们正常创建一个新的用户,默认情况下是不是都会有一张头像啊,所以我可以比如说我默认。
09:03
给他一个什么呢?比如说给他一个a.GPG啊。a.GB。再往后那six呢?Six是咱们的性别对吧,那我们TY。TT tiny int,没错吧,哎,给他最小的整形就行了啊,然后其他条件也没有,直接是非空,然后默认为零对不对,然后再往后性这个年龄呢,那也一样TYT,但是它什么无符号吧。五。无符号啊无符号好了,电话呢,电话存什么呀?有人说存整形,注意电话存整形是存不了了,直接给它差类型11个长度是不是就可以了,哎,咱们手机是不是就11个号,哎,那OK,这个也一样,飞空啊没有默认对吧,或者我默,比如说我设置飞空,哎默认为空可不可以。默认,比如说我给了一个空字符串,是不是没问题啊,哎。
10:01
好了,然后再往后权限呢,权限也一样,是用数值来表示的,对不对,比如说我这里面给他设定零,为什么为超级管理员,对吧,然后一为普通。普通会员啊,然后二呢为禁用。对对吧,当二的时候它就不能让他登录了嘛,对不对,就是禁用嘛,哦好了,那现在这里边一样,是不是也是什么t in的TY nt t in的类型啊。哎,然后这里面比如说默认默认为什么,默认为一吧,诶默认为普通管理员啊,默认普通会员啊,默认为一啊超级管理员咱只有一个对不对,然后最后添加的时间,时间我们用什么存储。哎,记住啊,时间我们用整形存储,然后无符号啊无符号好了,那现在你看我通过这个实体是不是找到这些属性,通过这些实体跟这些属性,我是不是就列出了这样的表,那么有了这样的表,我们是不是就会生成对应的这些SQL语句了?哎,建表语句我们是不是就可以有了?
11:01
明白明白了吧,哎,这就是我们在去写项目之前啊,所要干嘛呢?去了解的需求分析,那么了解到需求分析以后,根据需求来干嘛呢?来做数据库设计啊,那么数据库设计我们先去干嘛,先去找实体对不对?找完实体以后找它的属性,找完属性以后根据属性是不是设计这些东西,那光这么简单就完事了吗?其实并不是我们找完实体。通过实体找完属性以后,我们还需要干嘛呢?我们还需要为这些属性。找关系啊,或者说给实体找关系啊,那比如说咱们来看啊。来,咱们看我在这里边,我再给大家画一个图啊,怎么叫找关系,比如说我们在这里边会有什么呢?会有这个用户表,刚才我们已经说过了,对吧,那好,比如说这就叫用户表。用户表。哎,用户表跟谁有关系呢?那我们就要看流程了,对不对,那用户是不是可以发表文章啊,哎,你看一下啊,我们的需求文档里边。
12:05
后台咱不用看后台了啊,这里边每个模块我就不看了啊,我们直接看这块吧,你看当普通用户登录以后,是不是可以发表评论,诶是不是跟评论有关系,在个人中心里边,你看他可以干嘛,是不是可以发表文章,发表文章,文章是不是实体,是不是也是,哎,所以这里边他跟谁有关系,是不是跟文章就有关系了,你看好了啊,跟文章有关系对不对?那么用户表我们刚才已经分析过了,我们就不说了啊,那么文章这个实体里边是不是也有对应的属性,比如说它都有哪些属性,比如说我这里边先圈两个出来啊一个。两个三个四个五个六个七个八个。九个好,比如给这么多啊,文章都有哪些属性,比如说文章的这个编号。对吧,然后还有这个。文章简介啊,以及添加时间对吧,然后还有什么文章的内容啊。
13:07
然后文章的关键字。关键字以及这个。对吧,还有什么推荐推荐。推荐状态对吧,包括文章来源对吧,包括什么,还有什么审核状态等等一系列这些是不是都是文章的实体啊。这是不是都是文章的实体?不是文章的属性,都是文章的属性,对不对,哎,都是文章属性,那么咱刚才说了,我们用户表跟文章表有没有关系,有关系吧,我一个用户注意我一个用户只要登录以后是不是可以发送多篇文章。对不对,哎,注意啊,一个用户登录以后可以发送多篇文章,那这就相当于是一个什么一对多的关系啊,一对多的关系。
14:08
我就这么样简单的画了啊诶。对吧,然后这个用户。一个用户对吧,是不是对应着N篇文章啊,哎,这就是什么一对多的关系,一对多的关系啊好了,那现在你看,那怎么能知道这个用户跟这个文章是有关系的呢。啊,你想想,如果你是用户,你你注册了一个账号,登录了,好登录完以后你啪啪啪啪啪啪文章,那你怎么知道这些文章是你发的呢?是不是在文章这里边需要有一个关联的一个外键呢?哎,这什么关联?外界关联外界。啊,这个关联文件什么意思?比如说这里面就是关联文件就叫UID,哎,比如我当前用户的编号是一,那好,他登录以后发了十篇文章,那OK,这十篇文章的关联外界的UID都是多少,是不是都为一,那这个时候我是不是就能证明哦,这些文章是归这个用户所发的吧,对不对?哎,包括我们文章是不是还可以做分类啊,那么文章文章跟分类是什么关系?
15:16
我一个分类下,是不是可以有多篇文章,这是不是也是一对多的关系,对不对,哎,如果按照什么按照。文章以分类的角度来讲,那分类对于文章是不是就是一对多,那如果以文章来讲角度来讲呢,那文章对应的分类是不是就多对一啊?对不对,你看我是不是多篇文章都是对应这一个分类啊,能理解吧,或者是现在比如说我当前画这个图用户对吧,你看我一个用户可以发聘多篇文章,是不是一对多,那么同样。同样什么我多篇文章对应一个用户也对,对吧,但这么说起来就会比较难理解,就比较绕,对吧,不像是什么,不像我们说这个文文章跟分类才会比较清晰,没错吧?哎,所以说大家记住啊,看你站在哪个角度,如果站在用户的角度,那OK,我一对多的关系就是什么,我一个用户可以发送多篇文章,对吧?那如果站在文章的角度呢,那我多篇文章都由可以由一个用户来发送,是不是也没没问题。
16:19
哎,这就是什么找他们的关系,那不然不光是用户表跟文章表有关系,那还跟什么呀,比如说文章表还跟评论有关系呢,对不对,我一个文章是不是还对应了多条评论呢?是不是这样的,哎,所以我们要干嘛呢?把这种单独的关系图,这就叫什么压图,对吧,把这种关单独的这种压图来干嘛呀,来找出来,来画出来,画完之后再来结合,结合出来就是我们整个项目的一个流程图啊,整个一个项目的一个。压图,那么有了这些图对于我们有什么好处,我们再去扩展项目的时候,或者是说再去。迭代开发的时候啊,或者是再去给别人,让别人快速了解我们项目的时候,这个文档都能给我们提供很好的帮助啊,那么我只是简化了这个文档这些内容,那这个文档光这些内容吗?不是我们来看一下,之前我也带大家见过,在这个LESSON15里边有一个数据库设计说明书,对不对,那OK,我们打开。
17:20
打开我们来看一下啊,你看引言,并且目的这些不说了,每个文档下面都有对吧?背景这些都有啊,定义参考资料都不说,外部设计好了,标志符这里边开始对吧?这些里边有什么数据库的表前缀啊,用户名啊对吧,密码权限等等啊,有效时间对吧?然后约定你看好了,从约定开始,他说什么呢?所有命名一定要具有描述性,杜绝一切拼音或者拼音英文混乱的命名方式,对吧?然后。字符集采用UTF8 UTF杠八,请注意字符的转换啊,注意在数据库里面有UTF杠八吗?没有是UTF8对吧?而且大家还要注意的是在买S8。版本以上UTF8被改为UTF8MB4。
18:03
啊,所以你要写的时候是要写u ti8MB4才可以啊,然后这里面说了所有数据表的第一个字段都是什么都是主键,看到了吗?而且自增不可为空,名称命名为多少ID啊,然后特别除特别声明外,所有日格式都采用int无时兼值啊,然再往后除特别声明外,所有字符默认都不都设置什么不允许为空啊,需要设置默认值,看到了吗?诶刚才我们那里边是不是也有设置默认值啊?然后再往后这句话我们就不要管它了,因为我们没学过普通索引对吧,所以不需要理会好了,支持软件跟上,什么架构设计都不要,都不管了那个概念。结构设计我们下来以后可以自己读一下啊,包括这里边什么叫做数据的静态特性,你看他说主要包括数据的基本结构,呃,数据间的关系和数据之间相互约束等特性,其实刚才我们所做的那些是不是就是静态特性呢?那什么叫数据的动态特性呢?动态特性主要包括对什么对数据进行操作的方法啊,那么今天我们主要要做的第一件事儿就是把这些东西做出来,第二件事儿就是做什么做它的操作方法,而且这里边也说了,在设计数据库中间接的反映客观信息的数据模型,对吧?是设计数据库中最重要的啊,也是最基本的步骤之一啊,这就是咱们设计数据库啊,这里边也说了,你看以下是实体,一般实体,然后关系模型中的重要标识什么呢?就在数据库中存在的实体,然后实体的属性以及实体之间的关系,这是不是刚才我们找的实体是谁,实体是不是用户,用户里面有哪些属性,是不是就是里面对应的字段对吧?然后用户表跟文章表是不是有一些关系?
19:41
哎,这就是这样的啊,然后说实体跟属性的定义,你看。按照定义的数据类型和属性创建实体和实体属性列表对吧?然后实体形成表入用户就是一个实体对吧?属性则是表中的什么呀?例没错吧?哎,如对应的实体用户属性中包含什么呀?用户名,用户ID是不是就刚才我们说的username和user ID啊?哎,然后实体咱说了,实体是什么呀?实体就是关系模型的基本对象,是现实世界中各种事物的冲向,刚才说嘛,我也这么说的,哎,凡是可以相互区别开啊,相互区别开并可以干嘛呀?
20:17
并可以识别事物。概念等对象均可以认为什么是实体啊,均可以认为是实体,好了,然后这里边给我们列出了实体是不是会更多呀?哎,这些就是他给列出了实体有什么相册,实体栏目体,用户组的友情链接的图片文章,用户站内信公告,动态评论,幻灯片,是不是这些是他给列出来的这些实体啊,那么通过这些实体我们干嘛,是不是为这些实体去找属性。哎,属性,比如说文章标题,文章编号,文章简介,这是不是都是它的属性啊,对吧?哎,那再往下来,你看这里边是不是就给这个属性的这个实体图给列出来了,哎实体图列出来,你看文章会对应这一些实体,那么再往下来文章对应的这些实体,哎,这都一样的吗?
21:01
往下啊,再往下干嘛,开始去找它的关系了,你看括号这个叫什么,这个方括号是实体,这个代表关系对吧,这个代表属性,键属性,这个代表属性,这个剑属性我们不用管它,只看属性就可以了啊,然后往下来,你看刚才我们说了。这个相册和图片对吧?一个相册里边是不是可以存多张图片呢?这是不是一对多的关系,那么同样站在图片的角度呢,我是不是多张图片都可以存到一个相册,那反过来是不是也是多对一啊?对不对,哎,这就是找他的关系,那你看我相册的实体跟图片,跟图片的实体是不是就是有关系的,哎包括什么呀?用户组跟用户,我一个用户组里边是不是可以对应多个用户,那么我多个用户是不是也可以对应一个一个用户组。对不对,哎,这就是一对多跟多对一啊,在数据库中,在我们关系数据库中也有多对多,但是多对多L实现的话,通常都是三张表啊,通常都是三张表中间会有一张表,中间会有张表干嘛呢?会做关联啊,会做关联,但是我们现在这个项目不需要啊,用不着多的多。
22:09
好了,那再往下来,你再看用户跟站内信是不是也有关系,是不是哪个用户发的站内信,然后又发给了哪个用户,诶这如果涉及到用户和站内信的话,我们类似于能用到什么,用到这种结构结构吧,诶你看我这边是用户这边站内信这边相当于是不是还要有个用户,一个用户发送站内信是不是可以给多个用户,对吧,我多个用户。放入这个器。啊,不能给一个对吧,反正总之一个可以给多个,或者一个给一个是不是都行啊,诶当然咱们这个模块没有站内性对吧?诶这一个流程图就这一个数据库设计说明书已经是很详细很全的了啊,而且写的非常专业啊好了再往下来往下来看这个。你看文章跟栏目,栏目是不是就一对多,一个栏目里面是不是可以对应对应多个文章。对不对,哎,然后呢,一篇文章里边是不是又可以对应多个评论,你看一对N,一篇文章是不是可以对应对应多个评论呢。
23:08
哎,那么你看每一个关系,它是不就是我们通过这种方式,比如说用户跟用跟站内信的关系对吧?用户跟用户组的关系对吧?然后呢,文章跟栏目的关系,文章跟评论关系,我是不是都可以用这个图立马的表现出来,对吧?那么这些单个表现之后,最后干嘛呢?我们再给他汇总到一起,叫做什么呢?叫做设计全局的压图啊,那么全局的一压图,这回你再来看看,他就没有那么费劲了吧,比如说我们随便找一个找用户对吧,用户可以干嘛,可以管理文章,用户属于用户组对吧?用户可以干嘛,可以发送站内信,可以对这些信息进行操作。没错吧,然后产生了动态对吧?然后用户跟动态是不是也是进行关联的,诶动态跟文章是不是也是进行关联的,对吧?然后通过评论是不是也可以产生动态,是不是一对一,一个评论就是一个动态嘛,对不对?诶然后文章这里边,你看用户管理文章,文章的下属是不是就评论一个文章下面是不是有多条评论,你看这个时候我们再去看它是不是就没那么乱了。
24:10
对吧,哎,不像我们之前课程,我我们去讲数据库,一看到他哦,别看了脑袋疼对吧,因为那个时候什么我们看不懂对吧,现在我们是不是就能看得懂一些了,哎,所以说这一个。需求说明书啊,已经设计的非常详细了,所以这回下课以后,大家一定要把它好好看看啊,包括这里边还有什么。逻辑的结构设计对吧?啊,压图关系标那个标准的转化啊,这里边有什么,你看一对一,一对多以及多对多啊,这么几种关系啊,然后确定关系的模式,这里边你看也跟你说了转换的算法,图中这什么12个实体类型可以转换成12个关系模式,对吧?那怎么转换?比如说相册跟图片里边是不是有关系,分类跟相册是不是也有关系对吧?文章跟分类是不是也有关系,图这个幻灯片跟文章是不是也有关系,评论跟文章是不是也有关系啊等等等等,主要是什么,我们要把这些关系,通过这个图片,我是不是也能把这些关系捋清啊?
25:08
对不对,哎,比如说你看这边,你看图片是不是属于相册里面的,对吧?哎,相册里面会包含什么,包含的子相册。对吧,哎,然后呢,再往下来呢,图片可以干嘛,可以播放,播放是不是走到幻灯片这里面来了,哎,所以它跟幻灯片又有关系吧,然后呢,幻灯片我们说还可以设置什么,设置开始的时间跟结束的时间,对吧?那么每个幻灯片我是不是还可以对应一篇文章。看到了吧,哎,可以对应一篇文章对吧?哎,包括这个图片,图片还可以干嘛,图片是不是还可以对应一个栏目,哎,每个图片是不是4004,它是某个栏目下的。没错吧,然后文章是不是属于某个栏目下的对吧?而栏目呢,又分为什么?分为子栏目,父级栏目对吧,孙子栏目。没错,就是栏目也就有多层的嘛,对吧,顶级的啊,父级的子级的就是这个意思啊,所以这个时候看这个表是不是就没那么乱了,对吧?哎,那OK。那么你看没有关系,谁没有关系?这里边不是说全有关系,公告有关系吗?没有关系吧,不是任何一个用户来就能发公告的吧,友情链接有关系吗?也没有吧,也不是任何一个用户来就可以发友情链接的,所以你看公告跟友情链接他们两个都是脱离的队伍的,看到了吗?友情链接单独在这块。
26:19
看不到公告也单独在这块,诶公告由谁来发送的,是不是由我们的管理员来发送对不对,友情链接是由谁,是由一些客户来去做申请链接,然后我们管理员在后台干嘛呀,同意对不对。哎,这是我们做友情链接,那在他跟这些都没有关系,所以他们两个是不是都被单独分出来了,哎,那么通过整个这个全局的液压图,我们是不是就很容易去理清这个思路,找清谁跟谁有关系,对不对?诶,所以这个大家下来以后一定要认真的看,包括你以后比如说在做商业项目,接了这些私活以后,你想去写这些东西啊,你完全都可以参照着它啊,那么OK,确定了关系模式以后,接下来开始干嘛?开始这个消除数据勇于的话啊,我们我们不需要去理会,因为我们在设计的时候已经会把它加在里面了啊,然后接下来是不是就是物理结构设计了,那物理结构设计我们最终是不是就设计出这样的表,其实我们通过什么,是不是通过这种关系图。
27:17
这种关系图对吧,这是全局的关系图,通过这种关系图我们是不是就能设置出它的这个数据表了,对吧?哎,数据表设计好这个数据表以后,然后表里边的某一个每一个属性对吧?然后呢,多张表之间,比如这两张,你看相册表跟图片表之间谁是关联的,是不是也要有一个关联的,你看这里面是不是有一个PIDPID是谁呀?是不是他父亲的ID,他父亲是谁,是不是就是相册,我图片是不是属于相册内的。对不对,哎,所以我们通过我们的实体对吧,以及我们实体的关系,可以做出对应对应这样的一个表了,对不对,刚才咱们看啊,我在我的笔记里边是通过这个用户的实体,我是不是做出了这么一张用户的这样的一个表,通过这个表我们就可以干嘛,是不是就可以设计出我们的这些SQL语句了。
28:04
来这些表过后,你看通过这些表是不是就可以设计出这样的SQL语句了,诶他第一件事干嘛呀,是先删除这个表,不管你有没有,你看如果存在我就删除,删除完之后干嘛,我是不是在创建这个表啊。看到了吗?哎,每一张见表的语句是不是都给你写到下边来了,没错吧,那OK,我们现在开始也一样,开始来去做这些语句来哦,开始来做这些语句来好了,那现在啊,这注意啊,语句完事,它下面是不是就开始插入数据了,对吧?有数据记录了啊,那我们先不管它,我们先把表做出来啊。好。把它拿走,那么刚才用户表我们搞定了,对吧,用户完成之后是什么,是不是就是文章表了,那么接下来我们是不是就得做这个文章了,那文章表也一样,我们大家就要想文章里边都要有哪些内容,对吧?也就是给文章去找什么,找它的属性啊,找文章的属性,那OK,那么找文章的属性这里边其实我已经写了一些,当然这里写的也不是太全,对吧,那也差不多,那我们就直接往这一块来去建了啊。
29:10
来插入一个。表格。这里边。叫做文章表啊文。张表,文章表,我们起个名叫什么呢?Article a article啊,那咱们说了叫什么article,比如说叫做E-article啊,那么user用户呢,是不是咱们也得叫ew-user呀,哎,叫做ew-user对吧。哎,那OK。好了,那这里边一样,先是有什么列名。列名。然后类型约条件,对,然后OK后这几个不要。
30:03
给它拉大一些诶。来大大一些。有啊,然后还有什么,还有简介summary sum是吧,还有这个添加时间,比如说叫做这个a time,然后还有什么,还有这个用户是谁对吧,那叫UID就代表什么意思啊,就对应的用户表的ID,对应的用户表的ID。好了,然后还有什么呢?还有这个,呃,文章的来源对吧,叫call me form。然后还有什么文章的内容content以及关键字keyords对吧?然后还有什么,还有这个文章是属于哪个类别下的,对吧?比如说这个叫做呃,PID吧啊,或者我们叫做太就PIPI对吧?它属于哪个类别的啊,然后包括文章的审核状态,比如说叫做a u Di。
31:14
以及诶。还有什么,还有我们的推荐状态叫做呃。Recommend,啊,推荐状态好了啊,然后包括什么呀,我们的评论文章是不是可以评论呢?哎,有的文章可以评论,有的文章就不能评论,对吧,那我给他一个啊,那么干嘛呢?代表的是文章评论的开关啊,我在这说明给他补吧,叫评论。评论。开关啊,评论开关。好了,然后这个呢是什么呀,是我们的这个推荐的状态啊,然后这个呢,是我们的这个。呃,审核状态呗,是吧,核状这个PID是就呗,对不对,它分类的编号啊,就是分类的编号,文章属于哪个分类的,是不是对应的分类表啊哎,分类表当然现在还没有呢啊,然后这个呢,关键字,然后再往上文章的内容,然后文章。
32:19
个么?哎,然后再往后呢,标题对吧,再往后编号好了,文章表我是不是就有了,有了文章表以后我是不是要根据。文章表来干嘛来去?编写它的数据类型对吧,也看未来存什么,然后给他这些约束吧,那这里边有类型int,类型int,然后什么属性。是不是还是一样自动增长?自动增长的属性对吧,约束条件呢,组件哎,剩下标题的给他瓦差类型,比如说给他60个长度。
33:06
60个长度对吧,哎,不确定60多度,我们给它200个长度是不是也没有问题啊,哎,然后一样非空。飞。控。飞。咱们说了默认情况下,是不是都要给它设置为非空才行,所以这些啊,我都给它设置一下。好都是飞空了对吧,然后呢,再往下这个summary呢也一样,VRR马类型文章的来源文文章的这个简介对吧,那简介的话一样,我给他200个长度。对吧,这个我们少点标题,给他50吧,还是50吧,50个也够了吧,实在不给80对吧,然后time添加时间,添加时间的话,咱们说了时间给的什么,给的int类型,然后告诉他们无符号吧。哎,叫做无。
34:01
符号。无符号,哎,好了,然后再往后用户编号,用户编号是不是就因为用这里边存的用户编号是不本身就是对着用户表的,所以这里边是不是就是user用户的ID对吧?那也一样,用户的ID什么类型,是不是int类型,所以它也是什么int类型啊,然后也一样,非空也给他设置无符号,无符号,诶我们用户表是不是设置了无符号。这里边啊,我们都给他设置无符号啊,每一个ID我们都给他设置无符号,就不让他为负用户表是吗?用户表不是是吧?哎,给他设置一下无符号啊好了。好,那这块完事以后再往下来,文章的来源呢。瓦类型。对吧,比如我给他100个长度,对吧,然后剩下的。非公就可以了啊,默认我们可以给他默认。加个默认值对吧,默认为什么为空啊,然后再往后内容呢,给它case的文本类型对吧,然后一样它也是非空,然后这个关键字呢。
35:01
我差类型。给他多少个长度,比如说给他50个长度,对吧,然后一样,这里边也默认为。模为空字符串对吧,然后PID就是它负类的ID对吧,那个父类叫什么ID,我这块是不是就叫什么ID啊对吧?哎,不是类叫什么父类的ID是什么类型,我这块是不是什么类型对不对?比如说我这里边也一样ID,比如说我也给他,但不了,因为我们分类的话,不会去那么多分类的,所以一般分类都什么都是small in的,所以SMS ma small。Int类型,然后也一样,非空无符号。无符号啊好了,这里边是对应的它类别的ID啊,类别表我们还没有呢,一会儿我们创建类别表啊,然后再往后,这个叫做什么审核的状态,审核状态就是无非是012了不地了,对不对,哎,所以这里边给了什么,给了TT tiny in。
36:00
对吧,然后一样也让它空,然后比如说默认。啊,默认为什么呢?为零,那零代表什么意思呢?整个状态这里边,比如说零代表的是。呃。为。审核对吧,一。代表的是审核中对吧,二代表是审核通过啊,比如说我们给这三种状态对吧?哎,然后再往下呢,再往下是不是这个推荐的状态,你是往哪推荐的对吧?那就不一定了,看我们设置几个推荐位了,对吧?比如说我设置十个推荐位,那你比如说这个一号推荐位呢,就是我们这个首页二号推荐位呢,可能就其他的地方对吧?哎,走那个三号推荐位可能就是底部,那我设置几个状态是不是它就写几个,所以这里边我是不是也一样TY。TINY。It就行了。对吧,然后再往下来讨论开关,那TYT讨论这个P就讨论开关,评论开关开开就可以评论,关上就不能评论对不对,所以这个窗帘就俩对吧,一个零一个一,零代表YB。
37:07
或者零代表开启吧,啊一代表关闭,那这里边我是不是可以默认为零啊。默认为零对吧,这里边也可以设置,比如说默认为零,默认为零什么意思,比如说我这里面设置零为不推荐。可以吧,哎,比如说一维推荐首页班的。首页的班ner,哎,是不是也可以啊,对吧?哎,这就看我们怎么去设置了啊,看我们怎么去设置了,好了,那现在咱们看文章表我是不是就已经搞定了,哎,那OK,那文章表搞定以后,接下来我们还差什么,是不是还有什么分类呀,对不对,然后以及我们的这个呃,评论呢这些信息吧。那OK。那我们再来看看一下我们的这个分类表啊,那我们分类表。我们还是先再通过他找一下实体,剩下的我就不找了啊来我们再通过分类。
38:07
分类啊,那么咱们想啊,分类都有哪些,分类都都要什么哪哪些属性啊,不是哪些分类啊,都有哪些属性呢?其实对于分类表而言啊,我们一般有几个属性就够了啊有什么呢?首先分类肯定要有分列的编号,对不对,编号有了编号以后还有什么呢?还有因为我们分类是这样的,比如说比如像我们商城一样服装就是服装类,服装类下面是不是可以放男装?女装是这样的,对不对?哎,那我们这个这个分类也一样,比如说我们当前做CMS,比如说我们有国对吧,那国内里边可能有各种各样的这个新闻,比如说这个,呃,明星明星。去世。明星。有趣。明清去世。不是趣事啊,趣事对吧,然后还有什么,还有这个这个这个这个呃。
39:03
军事。行情。嗯,然后这个。科学技术。就是不是这些是不是都属于在国内范围内的,对吧?哎,那这是不是也是分类,你看这是不是就顶级的,这是不是它下面子级的。明白我说的什么意思吧,哎,所以这个时候他也会有什么呢,他也会有他的这个负。ID啊,就上级编号,上级的编号啊,比如说我当前的这个国内的编号是。这啊是二对吧,那明星趋势的上级编号是谁啊?是不是就二这个上级编号是不是也是二,这个上级编号是不是也是二对吧?那么我一拿到这个二,我一找上级编号的是不是就找到它下面所有的子类了。明白吧,这就是我们存上级编号的目的啊,然后包括它还有什么呢?还有它的这个路径。叫负极路径。负。
40:00
即。路径啊,为什么要有的负极路径,你看好了,比如说按照这个服装而言啊,男装,男装里面是不是还能再包含的,男装里面能包含什么,男装里面能包含,比如说这个T恤。T。Shirt a t shirt对吧,还有什么,还有这个。短裤。短。裤对吧,哎,女装里面呢,可以什么,比如说连衣裙。是不是这样的,哎,我能包含很多层对不对,所以呢,他还会给他记录什么,记录这么一个负极,负极路径,这个负极路径是什么呢?就好比是他负极的这个。比如说我用逗号来分割了啊,比如说就是。比如这样的啊,服装是一是二对吧,然后呢,这些,比如说这个是。编号嘛,三,然后这个编号是四。
41:02
对吧,比如连衣裙的编号是五,那好,那连衣裙的这个腹肌路径是谁,怎么找,那你看好了啊,就是它上面连衣裙归谁,是不是归女装所有啊,女装归谁,是不是归男归服装所有,你看当我点服装的时候,是不是也要也要能查到连衣裙的信息。对不对,哎,所以这个时候我就需要干嘛去记录它的编号,那它的变量号是多少呢?它附着它这个外层,就最外层顶级的顶级的这个编号,比如说我们假设给他定为零逗号,对吧,那么当他这个子类的呢,就男装跟女装呢,那就是零逗号一。比如说我就给他这么设定了啊,然后这个女装呢,也一样是零逗号一,那你看这时候你看他估计谁说有一是不是就是服装也就是零逗号,是不是就说白了,他的路径是不是就是他父亲的路径,加上父亲的ID对不对那一样。他连衣裙的路径是不是就是他父亲的路径,父亲的ID那是不是零?逗号一,逗号四,你看这个时候我是不是就把这个关系找清了,你看连衣裙的上一级是不是女装对吧,女装是不是就是啊,四的上一级是不是就男装,男装是不是就一,那你看一和四我是不是都找到了,哎,这就是我们未来要存的负极路径的原因啊,那么能更好的更快的去找到这个信息。
42:20
啊,这就负极路径好了,那有了负极路径还有什么呢?还有它栏目的标题呀,对吧,栏目标题。栏目标题对吧,那有可能还有什么,还有他栏目的这个编号。写哪去了?栏目的编号不是不不是编号啊,那个栏目的标题,栏目的描述吧,啊栏目的描述,那你看这些是不是就是我们当前的这个。属性对吧,包括我还可以加什么呢?我还可以加他的审核状态呀,对不对,我还可以加他的排序呀,啊等等这样的信息我都可以加进来,明白吧,这样信息我都可以加进来啊,这就是它的分类,这就是他的分类。
43:03
好了,那OK,那我们其实说白了啊,对于我这种分类来说,我用三层三个字段其实就够用了,哪三个字段够用呢?第一编号,第二标题,第三还有个上级路径,只要给我这三个,我就能编辑出很好的这样的格式啊,所以我说它三个够了,当然啊,我们没没问题,我们加了五个对吧,那我们就用了这五个啊,就用这五个。好了,那现在我们来看,那通过这个实体加上属性,我们是不是又可以干嘛,可以去设置它的表格形式了。表哥。先是什么这个。列名。然后数据类型,然后属性,然后约束条件。再添加一列,然后是我的说明对吧,那这里边刚才咱说有哪些有这个编号,那就直接ID了啊,上一级编号那就叫做PIPI,然后还有什么,还有它的这个负极路径叫pass,以及它的标题叫T,还有它的描述叫de,描述de SCI p t ion,哎呀,太费劲了,好。
44:22
那说明这个叫做什么栏目的编吧,栏编这个是,这个叫做上级编这个是。路径,哎,然后还有什么,还有这个栏目标题对吧,再往下呢,栏目描述。OK,有了这些,然后类型那一样,栏目咱说了没有那么大对吧,SML。Int哎,什么int,然后属性呢,是不是无符号,无符号然后自增对吧,约束条件组件对吧,然后PID呢也一样,Sal small in,然后也一样是无符号。
45:10
无符号对吧,然后子增,比如说我们再给它默认,默认为什么呢?默认为零啊,默认为零,零代表什么呢?比如说零就代表顶级了啊,零代表顶级,这里面我来个括号吧啊零代表顶级。顶级OK,然后再往后pass pass,这里边我们是不是也可以给啊,比如说这里边瓦类型啊,它是给路径的嘛,给字符串格式对不对,R瓦串类型给了多长呢?比如说我给他100个长度的啊,其实100长度我们用不上对吧?哎,给100个长度,然后也一样,这里面干嘛非空。飞空,然后呢,默认默认为什么,比如说默认为零逗号,哎这个零逗号代表什么意思,是不是代表顶级啊,哎,我就直接写这了啊顶级了。
46:02
这啊,非。空啊,然后再往后呢,标题呢,标题什么标题也一样,那VRCHR类型。然后我们也给它100个长度,然后飞空。可空对吧?哎,标题我们需要给默认吗?那不需要给默认了,对吧,你得给我给我标题才行,描述可以给默认是吧?那描述VRR瓦差类型还是一样,比如我给它200个长度,然后这里边。非公。然后诶。非。空。然后默认也一样为零。OK。这就是咱们这个叫什么表,分类表吧,哎,好,那分类表转完以后,我们还差什么,还有我们的这个,呃,我看看我们现在几个了,用户表对吧,文章表,然后分类表对吧?剩下的什么还有什么,还有这个评论表啊,对吧,还有我们的这个,呃,公告表啊啊,还有友情链接表啊啊,那OK,那这些东西呢,我们下节课再来设计好,这节课我们先到这里。
我来说两句