工作第二日

本文探讨了如何通过SQL查询业务代表及其上级的关系,并对比了子查询与联合查询的效率。此外,还讨论了根据业务代表查找商户及活动的方法,并提出了使用Map而非JavaBean进行数据封装的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.上午复习了一下昨日学习的代码。

2.中午看了看右边刘涛的代码,学习了一下,遇到贺宇杰的指点。

  业务代表<--主任<--经理<--督导

  业务代表<--主任<--机构<--片区

业务代表是  NS_USER  表 ,该表内有业务代表 ,业务代表的name ,业务代表的 propertity 表的id 

        根据此id关联 USER_PROPERTITY 表 ,此表中有 UID字段 ,此代表了此业务代表的领导 ;有SAMELEVELMAN 字段 ,代表了同等级的人的id ,里面记录了与我同等级的人,我可以看他们的下属。 //这也是与业务相关联的,一切是根据业务出发的,我由于个人原因无法处理的下属的请求可以让同等级的人处理。(其实此处应该还有部分没有讲的,我在的情况下,让同等级的人插手我的下属应该也是不妥当的。不过看这个项目进度,不用在这个点过多考虑)。

 用这个uid 可以再进入NS_USER中查询此领导的 信息,包括他的propertity表。


这个大致试验下这个sql的结构,光想,不写出来也是没有意义的。

                 1. 这样用子查询应该也可以吧,但是看起来比较水                       select  uid  from  user_propertity 

                                                                                                                                where  id=(  select  propertityId  from  NS_USER  where id='8888');

                 2. 试验下联合查询                                                                              select  up.uid 

                                                                                                                                from user_propertity up  join ns_user  nu

                                                                                                                                on up.id=nu.propertityId

                                                                                                                                where nu.id='8888';


目测应该是2的效率高,链好了查,总比查2次好。


活动分为  特惠 sperical   最红星期五 redFriday    营销  (大概是marketing)   卧龙岗wlg     

最后一个不清楚 ,特惠和最红星期五只能参加一次 。

有业代做了别人就不能做了。一旦有人做了特惠,这个机构的其他活动就不应该做了。,一个商户有多个活动,应该指的是没人做特惠的情况,因为毕竟是sperical ,比较少。

一个业代只能同时做一个活动,所以,可以根据业代查找活动,直到活动结束。 既然活动是短期的所以对时间,报表要求比较高。对sql语句的要求也就好。不知道批量是怎么写的,这个应该是比较重要的部分。



  3   .想一下昨天刘涛的表,

      区域,机构,主任 ,业代     -------------------》》》》要根据业带查   -------业代对应的商户与活动,这里试着写一个demo


public   Business   getBusiness {        //business是一个JAVA BEAN 这里偷懒就不写了 ,里面有所有要的信息(商户,活动等等)

     if  (业代不为空)  {

         处理处理

         Business bs= new business();

        bs.setXXX(XXX);

        bs.setYYY(YYY);

        return bs;

                                 }

  

   if  ( 主任不为空)  {

         处理处理

         Business bs= new business();

        bs.setXXX(XXX);

        bs.setYYY(YYY);

        return bs;

                                 }

 if  ( 机构不为空)  {

         处理处理

         Business bs= new business();

        bs.setXXX(XXX);

        bs.setYYY(YYY);

        return bs;

                                 }


 if  ( 区域不为空)  {

         处理处理

         Business bs= new business();

        bs.setXXX(XXX);

        bs.setYYY(YYY);

        return bs;

                                 }else {

       很悲剧都是空,那我必须吧全部查出来

       处理处理

       Business bs= new business();

        bs.setXXX(XXX);

        bs.setYYY(YYY);

        return bs;

                                            }

                                                           }


这样这个方法,把处理处理的部分填上就可以使用了,而且用起来应该没啥问题,但是。。。。

实际项目中的类实在太多了。如果什么都用entity 也就是dao 来面向对象封装的话,会发现维护你自己写的项目应该会很困难(目测是如此),重构一下用map ,现在知道为什么老师上课的时候用map了,当时觉得这样写有什么好,不好管理,主要原因还是用的少,其实用的多的话,会发现如果能自己搞清的情况下还是用 map 会方便多了,也不用怕文件太乱。

public   Map   getBusiness {       

     if  (业代不为空)  {

         处理处理

         Map bsMap =new HashMap();

        bsMap.put(XXX,YYY);            //好像是这样的,用的少有错勿喷

        return bsMap;

                                 }

  

   if  ( 主任不为空)  {

         处理处理

         Map bsMap =new HashMap();

        bsMap.put(XXX,YYY);            //好像是这样的,用的少有错勿喷

        return bsMap;

                                 }

 if  ( 机构不为空)  {

         处理处理

         Map bsMap =new HashMap();

        bsMap.put(XXX,YYY);            //好像是这样的,用的少有错勿喷

        return bsMap;

                                 }


 if  ( 区域不为空)  {

         处理处理

         Map bsMap =new HashMap();

        bsMap.put(XXX,YYY);            //好像是这样的,用的少有错勿喷

        return bsMap;

                                 }else {

       很悲剧都是空,那我必须吧全部查出来

       处理处理

         Map bsMap =new HashMap();

        bsMap.put(XXX,YYY);            //好像是这样的,用的少有错勿喷

        return bsMap;

                                            }

                                                           }

Map 中的key一定是string ,但是value 不一定是string  也可能是int 就没法用泛型了,就不用了吧。

处理处理的内容就从service层调用不同的方法来实现,这样就不拼sql 了。拼sql 看起来挺麻烦了,主要也是关联的表多。怕到时候,反而没执行效率了得不偿失。


明天做个demo上传上来给大家看看。要给自己点目标,否则又偷懒没动力了

                                                                          



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值