`
抛出异常的爱
  • 浏览: 620090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于四维的问题

阅读更多
知乎:为什么人类想象不出四维的空间?
https://www.zhihu.com/question/40217873/answer/91882011?group_id=701375890050789376

引用
很想知道高维空间是怎样的
物理学认为高维坍缩成小尺度了 是什么意思 理解不了?
还有就是二元方程用平面 三元方程可以用立体
多元方程怎么用几何表示?
有人说人类的大脑是三维结构的无法想象出四维,这有什么关系嘛?理解不了
还有生活中有没有体现高维的东西?

我说:
引用
0. 教学是线性的(书是字符 一维的, 老师讲课 一维的, 文章一维的)
1. 人类智商低 (初中 教学只能教到二维)
2. 学的不够(在高中期间 大量的升维 思维练习 , 数字化, 抽象化 )(楼主在这里掉队了)
3. 知识被垄断了( 大学学习的高数 可以简单把三维变方程,用方程变换 来进行思考, 线数把方程 维度无限推高) ;


再看一下下面的代码..............
基本是如何接手这样的代码呢?
        $goods = M("SightGoods")->field('id')->where(array('sight_id'=>$id))->select();
        if($goods){
            $ids = array();
            foreach ($goods as $v) {
                $ids[] = $v['id'];
            }
            if(count($ids) > 0){
                $orderWhere['gid'] = array('in',$ids);
                $orderWhere['comment_status'] = 2;
                $orderWhere['goods_type'] = 'sight';
                $orders = D('SightOrderView')->field('id')->where($orderWhere)->select();
                if($orders){
                    $oids = array();
                    foreach ($orders as $v) {
                        $oids[] = $v['id'];
                    }
                    if(count($oids) > 0){
                        $page = $page-1;
                        $pageCount = 10;
                        $limit = $page*$pageCount.",".$pageCount;
                        $comment = M('OrdersComment')->where(array('oid'=>array('in',$oids)))->limit($limit)->order('create_time DESC')->select();
                        if($comment){
                            foreach ($comment as &$v) {
                                $user = M('Users')->field('mobile,openid,nickname,email,img,sex,ind_signature')->find($v['uid']);
$user['img'] = $this->eve->arrangeUserImgPath($user['img']);
                                $v['user'] = $user;
                                $imgs = M('UserAlbum')->field('image_path')->where(array('obj_id'=>$v['id'],'image_type'=>1))->select();
                                $images = array();
                                if($imgs){
                                    foreach ($imgs as $img) {
                                        $images[] = $this->eve->arrangeUserImgPath($img['image_path']);
                                    }
                                }
                                $v['images'] = $images;
                            }
                            $this->apiRetrun(1,'ok',$comment);
                        }
                    }
                }
            }
        }
	$this->apiRetrun(0,'no data');
    }


这是一个人类典型的多维度思考方式的自然体现

我要说的是学习编程的人应该用升维练习来解读
分享到:
评论
6 楼 抛出异常的爱 2016-04-22  
6.调试
6.1 sight类型的定单才显示
select albums.obj_id,albums.image_path from UserAlbum albums  
left join OrdersComment comments on albums.obj_id=comments.id   
left join SightOrderView orders on comments.oid = orders.id   
left join SightGoods goods on orders.gid = goods.id  
left join Sight sights on goods.sight_id = sights.id  
left join User users on comments.uid =users.id  
where sights.id = :id  
and orders.goods_type='sight'


6.2 开放评论的定单才显示
select albums.obj_id,albums.image_path from UserAlbum albums  
left join OrdersComment comments on albums.obj_id=comments.id   
left join SightOrderView orders on comments.oid = orders.id   
left join SightGoods goods on orders.gid = goods.id  
left join Sight sights on goods.sight_id = sights.id  
left join User users on comments.uid =users.id  
where sights.id = :id  
and orders.goods_type='sight'
and orders.comment_status=2


6.3 图片应该为未删除的
select albums.obj_id,albums.image_path from UserAlbum albums 
left join OrdersComment comments on albums.obj_id=comments.id  
left join SightOrderView orders on comments.oid = orders.id 
left join SightGoods goods on orders.gid = goods.id 
left join Sight sights on goods.sight_id = sights.id 
left join User users on comments.uid =users.id 
where sights.id = :id 
and image_type = 1
6.4 可能还有很多问题
.................
7.代码化
引用

OrdersCommentViewModel //6行有效
UserAlbumViewModel     //8行有效

 //20行有效行数
$comments = D('OrdersCommentView')->where(array('id'=>$id ))->select();
$albums = D('UserAlbumView')->where(array('id'=>$id ))->select();
foreach ($comments as $comment) {  
    foreach ($albums as $album) {  
        if($comment['id']==$album['obj_id']){  
            $comment['images'][] = $album['image_path'];  
        }  
    }  
} 


8 总结
人的眼睛智商
总是不够用的状态
所以要学习升维,降维
才能读懂别的代码
写出不那么隔心的代码
5 楼 抛出异常的爱 2016-04-22  
5.1 景点所有的评价:
comment->order -> goods -> sight
多对一
select * from OrdersComment comments 
left join SightOrderView orders on comments.oid = orders.id
left join SightGoods goods on orders.gid = goods.id
left join Sight sights on goods.sight_id = sights.id
where sights.id = :id

5.2 评价的内容填充用户信息

select comments.*,users.* from OrdersComment comments 
left join User users on comments.uid =users.id


5.3合并上二个sql (逻辑上不应进行合并但性能就需要合并了)
select comments.*,users.* from OrdersComment comments 
left join SightOrderView orders on comments.oid = orders.id
left join SightGoods goods on orders.gid = goods.id
left join Sight sights on goods.sight_id = sights.id
left join User users on comments.uid =users.id
where sights.id = :id


5.4 分页 排序 等等

5.5 一个for循环套查寻也没什么不好
但为了性能什么的 增加一些东西:
select albums.obj_id,albums.image_path from UserAlbum albums
left join OrdersComment comments on albums.obj_id=comments.id 
left join SightOrderView orders on comments.oid = orders.id
left join SightGoods goods on orders.gid = goods.id
left join Sight sights on goods.sight_id = sights.id
left join User users on comments.uid =users.id
where sights.id = :id


            foreach ($comments as $comment) {
                foreach ($albums as $album) {
                    if($comment['id']==$album['obj_id']){
                        $comment['images'][] = $album['image_path'];
                    }
                }
            }

4 楼 抛出异常的爱 2016-04-22  
4分析

景点所有的评价:
        // 景点 下有多少 票种
        $goods = M("SightGoods")->field('id')->where(array('sight_id' => $id))->select();

        if (!$goods) {
            return $this->apiRetrun(0, 'no data'); //升一维
        }
        $ids = array();
        foreach ($goods as $v) {
            $ids[] = $v['id'];
        }
        if (count($ids) <= 0) {
            return $this->apiRetrun(0, 'no data'); //升二维
        }

        $orderWhere['gid']            = array('in', $ids);
        $orderWhere['comment_status'] = 2;
        $orderWhere['goods_type']     = 'sight';
        // 票种 下了多少定单 TODO ids 可用子查寻来作
        $orders = D('SightOrderView')->field('id')->where($orderWhere)->select();
        if (!$orders) {
            return $this->apiRetrun(0, 'no data'); //升三维
        }
        $oids = array();
        foreach ($orders as $v) {
            $oids[] = $v['id'];
        }
        if (count($oids) <= 0) {
            return $this->apiRetrun(0, 'no data'); //升四维
        }
        $page      = $page - 1;
        $pageCount = 10;
        $limit     = $page * $pageCount . "," . $pageCount;
        //定单中的评价 TODO 可用子查寻来作
        $comment   = M('OrdersComment')->where(array('oid' => array('in', $oids)))->limit($limit)->order('create_time DESC')->select();

评价的内容填充
            foreach ($comment as &$v) {
                // 补充评价的用户信息
                $user        = M('Users')->field('mobile,openid,nickname,email,img,sex,ind_signature')->find($v['uid']);
                // 补充头像实际地址
                $user['img'] = $this->eve->arrangeUserImgPath($user['img']);
                $v['user']   = $user;
                // 此评价的上传图
                $imgs        = M('UserAlbum')->field('image_path')->where(array('obj_id'=> $v['id'],'image_type' => 1,))->select();
                $images = array();
                if ($imgs) {
                    foreach ($imgs as $img) {
                        //补充上传图的实际地址
                        $images[] = $this->eve->arrangeUserImgPath($img['image_path']);
                    }
                }
                $v['images'] = $images;

3 楼 抛出异常的爱 2016-04-22  


加入备注


 public function getCommentBySight($id, $page = 1)
    {
        // 景点 下有多少 票种
        $goods = M("SightGoods")->field('id')->where(array('sight_id' => $id))->select();

        if (!$goods) {
            return $this->apiRetrun(0, 'no data'); //升一维
        }
        $ids = array();
        foreach ($goods as $v) {
            $ids[] = $v['id'];
        }
        if (count($ids) <= 0) {
            return $this->apiRetrun(0, 'no data'); //升二维
        }

        $orderWhere['gid']            = array('in', $ids);
        $orderWhere['comment_status'] = 2;
        $orderWhere['goods_type']     = 'sight';
        // 票种 下了多少定单 TODO ids 可用子查寻来作
        $orders = D('SightOrderView')->field('id')->where($orderWhere)->select();
        if (!$orders) {
            return $this->apiRetrun(0, 'no data'); //升三维
        }
        $oids = array();
        foreach ($orders as $v) {
            $oids[] = $v['id'];
        }
        if (count($oids) <= 0) {
            return $this->apiRetrun(0, 'no data'); //升四维
        }
        $page      = $page - 1;
        $pageCount = 10;
        $limit     = $page * $pageCount . "," . $pageCount;
        //定单中的评价 TODO 可用子查寻来作
        $comment   = M('OrdersComment')->where(array('oid' => array('in', $oids)))->limit($limit)->order('create_time DESC')->select();
        if ($comment) {
            foreach ($comment as &$v) {
                // 补充评价的用户信息
                $user        = M('Users')->field('mobile,openid,nickname,email,img,sex,ind_signature')->find($v['uid']);
                // 补充头像实际地址
                $user['img'] = $this->eve->arrangeUserImgPath($user['img']);
                $v['user']   = $user;
                // 此评价的上传图
                $imgs        = M('UserAlbum')->field('image_path')->where(array('obj_id'=> $v['id'],'image_type' => 1,))->select();
                $images = array();
                if ($imgs) {
                    foreach ($imgs as $img) {
                        //补充上传图的实际地址
                        $images[] = $this->eve->arrangeUserImgPath($img['image_path']);
                    }
                }
                $v['images'] = $images;
            }
            $this->apiRetrun(1, 'ok', $comment);
        }
    }
2 楼 抛出异常的爱 2016-04-22  
    public function getCommentBySight($id, $page = 1) {
        $goods = M("SightGoods")->field('id')->where(array(
            'sight_id' => $id
        ))->select();
        if (!$goods) {
            $this->apiRetrun(0, 'no data'); //升一维
            
        }
        $ids = array();
        foreach ($goods as $v) {
            $ids[] = $v['id'];
        }
        if (count($ids) <= 0) {
            $this->apiRetrun(0, 'no data'); //升二维
            
        }
        $orderWhere['gid'] = array(
            'in',
            $ids
        );
        $orderWhere['comment_status'] = 2;
        $orderWhere['goods_type'] = 'sight';
        $orders = D('SightOrderView')->field('id')->where($orderWhere)->select();
        if (!$orders) {
            $this->apiRetrun(0, 'no data'); //升三维           
        }
        $oids = array();
        foreach ($orders as $v) {
            $oids[] = $v['id'];
        }
        if (count($oids) <= 0) {
            $this->apiRetrun(0, 'no data'); //升四维
            
        }
        $page = $page - 1;
        $pageCount = 10;
        $limit = $page * $pageCount . "," . $pageCount;
        $comment = M('OrdersComment')->where(array(
            'oid' => array(
                'in',
                $oids
            )
        ))->limit($limit)->order('create_time DESC')->select();
        if ($comment) {
            foreach ($comment as & $v) {
                $user = M('Users')->field('mobile,openid,nickname,email,img,sex,ind_signature')->find($v['uid']);
                $user['img'] = $this->eve->arrangeUserImgPath($user['img']);
                $v['user'] = $user;
                $imgs = M('UserAlbum')->field('image_path')->where(array(
                    'obj_id' => $v['id'],
                    'image_type' => 1
                ))->select();
                $images = array();
                if ($imgs) {
                    foreach ($imgs as $img) {
                        $images[] = $this->eve->arrangeUserImgPath($img['image_path']);
                    }
                }
                $v['images'] = $images;
            }
            $this->apiRetrun(1, 'ok', $comment);
        }
    }
1 楼 抛出异常的爱 2016-04-22  
如果使用不同的技巧与知识
那么升维之后思考就不是那么困难了

   public function getCommentBySight($id,$page=1){
        $goods = M("SightGoods")->field('id')->where(array('sight_id'=>$id))->select();
        if(!$goods){
                $this->apiRetrun(0,'no data'); //升一维
        }
            $ids = array();
            foreach ($goods as $v) {
                $ids[] = $v['id'];
            }
            if(count($ids) <= 0){
                    $this->apiRetrun(0,'no data'); //升二维

            }
                $orderWhere['gid'] = array('in',$ids);
                $orderWhere['comment_status'] = 2;
                $orderWhere['goods_type'] = 'sight';
                $orders = D('SightOrderView')->field('id')->where($orderWhere)->select();
                if(!$orders){
                                        $this->apiRetrun(0,'no data'); //升三维

                }
                    $oids = array();
                    foreach ($orders as $v) {
                        $oids[] = $v['id'];
                    }
                    if(count($oids) <= 0){

                                         $this->apiRetrun(0,'no data'); //升四维
                   }
                        $page = $page-1;
                        $pageCount = 10;
                        $limit = $page*$pageCount.",".$pageCount;
                        $comment = M('OrdersComment')->where(array('oid'=>array('in',$oids)))->limit($limit)->order('create_time DESC')->select();
                        if($comment){
                            foreach ($comment as &$v) {
                                $user = M('Users')->field('mobile,openid,nickname,email,img,sex,ind_signature')->find($v['uid']);
                                $user['img'] = $this->eve->arrangeUserImgPath($user['img']);
                                $v['user'] = $user;
                                $imgs = M('UserAlbum')->field('image_path')->where(array('obj_id'=>$v['id'],'image_type'=>1))->select();
                                $images = array();
                                if($imgs){
                                    foreach ($imgs as $img) {
                                        $images[] = $this->eve->arrangeUserImgPath($img['image_path']);
                                    }
                                }
                                $v['images'] = $images;
                            }
                            $this->apiRetrun(1,'ok',$comment);
                        }
    }

相关推荐

Global site tag (gtag.js) - Google Analytics