00:00
好来我们看下这个发布微博,发布微那发布微博直接他这个在这个。然后发布微博,其实就是干什么s create对不对啊,创建一个数据对吧,那我们要考虑的是这个地方它应该传什么内容呢。你想想看,你发微博的时候。是不是你点一下什么发送按钮填写内容,然后点一下发送按钮它就成功了呀,其实它只要两个参数,第一个呢是就是你的UID对吧,然后还有就是内容吧,那至于表是什么,你要往哪个列头发,其实对于前台来说,他不关心嘛,是你后台干的事对不对?那我们其实这个地方传的呢,是string,然后UI,然后是three啊,Con content,内容对吧?啊,内容OK,那在这个方法里面,我们自己来决定操作哪张表啊。
01:00
对吧,好,那我们要注意一个问题,还是拿到这。我们肯定要往这张表里边填出去,这没有毛病,大家都知道了,对吧,哪一个人UID是谁,然后给他一个拼接,但是。你说你这个地方更新了之后。来了一条数据之后,你这张表是不是也要分析?这个地方我们不是说放最新的五条或者三条数据吗?那你来了之后,你这个地方是不是要做更新。对吧,做分析OK,那。对谁的这个地方是谁呢?对谁进行更新呢?假如说我这个人是A啊,我A发了一条微博,说今天天气真好。那我们要更新的这个微博收件箱表,它涉及的人是哪些呢?是不是关注了A的人都要更新,对不对,那也就是说A在这其实选这个粉丝里边,我们要去用户关系表把它那个什什么。
02:07
Fans全部拿出来对不对,拿出来之后一个一个的作为这个地方的一个微博收件小票里边的一个rie来更新这里面的数据。能不能理解就这个地方是A,然后他的一个粉丝呢,有B有C有D,然后这个题的话呢,我们要在A发布了一条微博之后,你在微博收件箱表,同时要把BCD关于A这个人的数据啊。要做更新能不能理解,嗯,是这样的吧,啊,所以说看着好像是两个方法对吧?啊挺复杂的,这个方法一定要把这个逻辑给理清楚,不是说单独的在这个微博内容表里边添加一数据就OK了,不是这样的,而是说他在这个里边呢,对这张表进行操作,那对这张表操作的时候,你要拿到是谁,是不是又要来这张表来关联啊。所以说在这个方法里面,我们要获取三个表对象是不是对吧,因为三张表的一个操作都获取到了,都要了,OK,那这个地方我们首先来获取连接是不是。
03:06
点create con诶了是吧。然后把它的一个连接拿到,那连接拿到同样的,我们把三个表的对象同时给他获取到的吧,那获取表对项什么来了,Get table对吧?啊get table这个地方是table内点y of,我把这个复制三份。然后第一个里面填的是。Content s。我们来一个内容表要有啊,我们首先更新的是内容表,是不是内容表这个地方叫。CT,然后K标啊,就是内容表的一个需求,那第二个。
04:04
还有用户关系表和收件箱表同时都要有啊,那这个地方是康。在那点。Relation。这个名字呢,IRA。他的一个用户的一个关系表,接下来还有一个。点in box对吧,这个东西你要有,那这个地方就是in。Bo,太保。这三张表的一个对象,我明天获取到。先获取到啊,这个地方有了。那一个一个来呗,你首先是不是要更新这张表里的内容,对吧?啊,更新这张表里面内容,我们其实要的一个对象对不对,你有一个put,那这个put对象它的一个UID是谁呀。不是UID啊,他的一个R是谁啊?
05:01
UID加上时间戳。对吧,加上时间窗,那正常的在生产环境当中,这个时间窗啊,一般从前台会带回来,但是呢,我们在这不会用,想一想为什么不会用前台传过来的时间说。因为你看啊,你手机端或者说你的一个外部端,特别是手机端是不是你对你可以改时间啊。那你用前台传来的时间,是不是每一个用户他都不一样啊,不是统一那个时间嘛,所以说这个地方你一定要用什么后台的时间,也就是说你在这个时候获得数据的时候,你自己获取一下啊,这个时间中那这个system。点current。Ten minutes。一个TS应该叫这个地方就9L看吧,因为我们要转成对吧。好直接拼,对直接拼也行啊,然后我们要把这个时间戳干什么。
06:07
这就这就是格式。我们要干什么事,是不是把UID跟那个神经拼起来呀,对吧,拼起来就行了吗?那这个地方我们来一个对。然后叫UK吧,我们现在拼是不是拼UK啊对吧,U等于UID拼接上一个下划线,然后拼接上一个。TSTS啊,用下划线分开,因为有可能你UID里边也是按数字分的是吧,那你跟时间窗就搞混了,有时候对吧?啊就避免这种情况,中间用一个下划线,或者用一个竖杠给它分割开,给它分割开,那你后面去取数据的时候,你要按下划线来分割,也可以很快的拿到它的一个UID,加上你的时间抽了啊,就是后面假如说要用到手也能方便点啊,也能方便点,OK,那这个地方就是。拼接那UID就不能。
07:05
对,UID就不要用下划线了,不要用下划线了,起名的时候要注意一下就行了,那这个肯定是根据公司的需求,看它不用什么符号,然后你在这个地方用什么符号吧,就UID里边没有什么符号,你就这个地方用什么符号。然后这个地方他要一个数组是不是best.to然后把这个给它扔进去。一个破对象,然后接着我们往这个put对象里面放。具体的值是不是啊,具体的值OK,他首先要一个。列足点to,那列足是不是也是我们自己指定的这个列组,我们这写的是in for对吧,啊in for。去哪了?然后列。Best。点tos,我们用的是。
08:02
对吧。然后他这个最后是他这个什么值对吧,值其实也是content,但是这个content你不要加双引号了,对吧。然后外面传进来的。那这个东西有了,我们是不是可以此时就把它写到内容表里边啊?把这个扩得进去,这个时候是不涉及多少操作了,你说你发微博一次发多条,好像没有这个,没有这个应用吧。都一条一条的发吧,都一条一条发,把这个注射导向。获取连接,然后这个地方是。获取三张。操作的表对象,表对象。这个应该是生成。获得对象,获得对象,然后是这一步操作是往什么。
09:04
往内容表里边添加数据对吧,添加数据总的我们知道这个方法呢,分为两大步骤,第一个呢是要往内容表它添加数据,第二个呢,是往。收件箱表添加数据对吧?分为两步,OK,那往收件箱表放数据之前就这个东西吧,我们是不是得先获取到这个UID是谁啊?对吧,这个UID是不是从这地方获取对吧,那去获取的话是不是要用get get指定的r key是我们传进来的UID对不对。理一下,嗯。对吧,OK。那这个地方我们要用一个。Get啊,这个里面放的呢,其实还是它。应该是UID这个地方UID对吧,是拿到一个UID对象,我们获取一个。
10:04
那这个get。我们还是要用表把它这个所有的数据拿出来吧,把数据拿出来OK,那此时操作的表是relation table吧。啊,用户关系的话去get。然后把这个get给它传进去,我没有用户关系表里面没有涉及到多版本吧,啊,所以你直接获取最大值就行了,OK。没到呢。道,那这个道的是不是多个CE,好对这个道进行什么点for循环,进行遍历?哦,对,点掉。Raw对这个进行编译是吧?点for循环,点负循环,好因为Excel,那我们要拿的是什么。
11:02
Value是拿value,但是我们拿是不是只通电啊,对吧?OK,那这个地方我们可以来。可以用两种方式,是不是你在盖到这儿。点。添加列祖吧。是不可以,这种方式可不可以,我指定我在获取的时候,我就不获取了,我只获取。是不是可以,还有一种就是我在这里边编译的时候,我只取faces这个下面的可不可以,两种都可以吧,那为了简便一点,是不是在这更方便一点啊,对吧,更方便一点啊,best.To Best,然后这个里边传的是fast fast OK,那这个复循华说遍利了,全都是fast的,全都fast,那我们要什么呀?要拿这个UID对吧,也就是拿列或者说直都可以吧。
12:05
我们当时不是说了嘛,这个到这个地方到底我们存的时候是不是列跟值都一样啊,对吧,存样了,所以说你这个地方拿列拿值一样,那这个地方拿的话是用。怎么拿?是不是点克隆考拿里。好,它是一个。Call fair吗?对,那你想想看,你,你单纯的是为了拿这个吗?你是为了拿什么呀?你拿这个地方是不是为了生成这个入key啊,对吧,哎,因为这个地方的一个可是这啊这个一对应的,然后这个地方呢,在这对吧,那我们最终是不是要拿着这个。当前的这个生成一个。Good对象。捋一捋啊,是不是要生成一个这个表的负的对象,对吧?啊生成这个表的量,那我们知道一个人他关注的粉丝啊,可能有。
13:10
不是一个人。他的粉丝可能有。多个或者零个。你要考虑零的情况,你要考虑多个的情况,如果零你想想看,这块零的话,便利是不是不太好啊,是不是先在这应该有一个判断吧。看一下有没有之类的点啊,什么length有吧,哎,它这个长度,那我们知道如果说什么。S点蓝色。不等于不等于零,或者说小于等于零,我们干什么?小于等于零的时候,这张表还需要更新吗?就下面的操作都不需要做了,对不对?我直接返回能不能理解,就是我一个人呢,还没有被任何人所关注,那我发一条微博,那你就这单独这一张表吧,跟后面这两张表没有任何关系,能理解这个问题吧,OK,那就直接返回好,如果说这能进到这个佛循环说明它。
14:19
的话,对呀。不是等会还有东西还没写吗?因为我们要根据这个什么。最后还有那个铺的操作的操作,我们主要是为了屏蔽那个铺的操作来看一下啊。首先我们这个负循环是可能有多个的吧,如果走到这来的。对吧,哎,他可能有多个的,那我们干什么呢?我们后面那多个是不是都是操作于这一张表啊。是不是这一张表里边我会同时添加多个。数据对吧,我们用批量操作,那批量操作if只要循环过来,我在外面用一个。
15:04
这里边放型在外面写对吧?累,你想想这里的范型应该写什么?是不是呀?想一想啊。好,当前这个人呢,这个A啊在这发布了一条微博,那这个A呢,我们需要找到他多条粉丝,接下来呢,这个粉丝找到了之后,是不是每一个UID都对于我们收件箱表里的一条数据,也就是一个put对象了,对吧?啊,也就是一个一个的put对象,那我们要批量操作的话,此时应该用一个集合来装这个put对象,对不对。好,然后这个地方有了,你接下来是不是在这变一次的时候来申请这个合作对象。对吧,又一个put,这个里面放什么呢。
16:05
这个放不了吗?这个地方叫。In box不对吧,这个对象是不是in box,那张表里面不能对象,然后我们就把它干什么。点。然后把这个put给他扔进去,In box,对吧?把这个添加进去。这一块操作能不能理解。想想还是那张图嘛,首先呢,微博内容表这块应该是大家最清楚的,那直接就是一个po,完事之后,你把这个微博内容表点铺的把它添加进去了吧,但是你要注意这个添加完了之后,你要更新这张表啊。嗯,那你更新这张表,你要更新几条数据,是不是来自于这张表啊。
17:01
对吧,哎,是来自于这张表,所以说呢,我们先去这张表里边获取了一下它的一个UID,那这个UID最终是生成其实我们微博内容表它的一个R。对吧,哎,甚至它这一个入那这一块我们是不是要操作多行数据啊啊,我们就用个list来把这个put对象呢,给它装起来了啊,到时候直接用微博内容表调一次库里边传一个list就可以了吧,啊一次性把这个数据把它所有粉丝。的数据全部更新啊全部更新,OK,那这块我们只有的这个获得对象对吧,那获得对象里面的值呢,对吧,你说应该加什么东西呢点。就这张表加什么呢?一在这吧。这个地方UD又是谁呢?
18:01
看啊,这个人发微博的是A对吧?好,那这个地方就是A,那他拿的这个是BCD,那这个地方就是BCD对吧?那你想想这个是谁呢?是不是A啊,是不是传进来的那个UID啊,对吧?哎,不要晕啊。对,那这个地方点to to,然后这个里边写的是in对吧。它列足嘛,然后第二个是列列式UID,刚才分析了对吧,传进来的是这个地方的一个。是这个传进来的UID对不对,OK。点To Best,然后把这个UID给它放进去,最后这个值呢。值是谁啊?是不是UID加时间出啊,那是不是我们刚才写的这个。就是这个东西吧,对吧,你要保持一致啊,你不能再在这再生成一个时间吧。
19:02
对吧,OK,那这个地方我们就知道了。best.best把这个rookie给他扔进去,给它进去。是这样的。这个整个的逻辑能不能理解这个地方是获取什么?关系。表中的。对不对,这块对吧,这块的操作是不是获取他的一个犯,找到他粉丝是谁,对吧,然后这一款是更新什么。Fan。收件箱表。对不对。
20:04
最后我们当然还要调一下什么in box table.put把这个库给它放进去了。保证那个。啊。的话。哪个地方会三条雷达上去?哪个版本,什么意思,怎么了?这个五条不是创表的时候或者三条或是创表的时候指定的吗。那我插入数据的时候,我还敢把那几个版本吗?那如果说你这里边已经五个版本,我再发出一条最老的就覆盖掉了,就获取,就是你在GET5条的时候是不是获取不到啊。这个时候跟版本没关系啊。理理。
21:00
要理清楚,想一想。就是当前这个人发了一条微博之后,我来分析这个数据跟我这里面有多少条有关系吗。我只要把我最新的铺的进去就行了吧。假如说你里面已经存在了五条了,那我再去获取五条的时候,那之前最老的一条就不见了呗,就我获取的是最新的五条呗,对吧,所以说我直接铺的就行了吧,这个铺的时候是每一个这个里边都铺的一条啊,就是BCD每个里边铺一条。这样理解啊,这个时候跟那个版本没有关系的,OK,那最后是不是把我们几个表的一个资源关闭掉。关于资源,然后是三个表是吧。Table点,然后还有关系表点,还有一个呢。是内容表contain对吧。
22:00
点最后还有一个连接对吧,给他关掉关掉这现在。那这里呢,其实我们核心的做了两件事情来看一下,第一。做什么事更新微博什么内容表述对吧。数据第二步,核心的是更新。粉丝,粉丝的数据其实也就收件箱。收件。相表数据对不对,核心的做这两件事,但是做到做第二条的时候,是不是你先去干什么,获取当前。操作人的什么粉丝对吧,然后去。去往收件箱表。
23:04
依次收件箱表依次更新什么?博更新数据吧,就更新数据大家知道是其实更新了一个加时间多对吧,但这款其实没有什么,跟版本没有关系啊,分为两大步,两大步,这两大步呢,跟这三张表都有交互。啊,这块最重要的是逻辑的一个理解哦,因为三个表啊,操作起来相对来说它这个东西还比较多一点,要多一点。
我来说两句