美文网首页
Freeshare查看“我发布的资源” 引发的思考

Freeshare查看“我发布的资源” 引发的思考

作者: 金声玉振 | 来源:发表于2015-04-16 20:13 被阅读16次

在改一个bug时觉得代码冗余,遂求宋神指点改进,在讨论的过程中,不小心整理了一下freesahre的权限体系,如下图所示,将个人版和企业版比作微博企业版(虽然没有用过,但是可以想象)就可以很好的理解了,因为多了一层企业的概念,所以多了一层权限。个人版就像一个特有的企业,是没加入任何一个企业的用户和群组的归属。企业版为不同企业之间的群组、资源进行隔离。

freeshare权限体系

另外在设计查看“我发布的资源”和“我的草稿”数据库查询时,提出新的思路:

1、查出作者为我的全部资源id1

2、查出我的企业版群组gid1,再查出属于这些群组的资源id2

3、查出我的个人版群组gid2,再查出属于这些群组的资源id3

4、id1与id2的交集即为我企业版中发布的资源id4

5、id1与id3的交集即为我个人版中发布的资源id5

6、(id4并id5)差 id1即为我的草稿资源id6(不属于任何一个群组的资源,仅自己可见)

之后分页展示时再每次取10条找到resource。

优点:查询语句简单,逻辑都放在java中处理,基本的dao层方法可以为别的逻辑复用

缺点:与数据库中的分页查询方法相比效率低,数据很大时会出现内存溢出,因为id1、2、3都是查出全部数据

现在依然沿用原来的数据库多表查询的方法,宋神说join命令会使两个表的全部内容join,效率很低,但是网上有人测试表示尽量使用Join 而不是Where来列出关联条件,特别是多个表联合的时候。原因是:

(1)在效率上,Where可能具有和Inner join一样的效率。但基本可以肯定的(通过SQLServer帮助和其它资料,以及本测试)是Join的效率不比Where差。

(2)使用Join可以帮助检查语句中的无效或者误写的关联条件,提高代码可读性

http://tech.163.com/07/0309/14/395APR410009158J.html

也有人说where速度快,原理性的还需自己去了解。

相关文章

  • Freeshare查看“我发布的资源” 引发的思考

    在改一个bug时觉得代码冗余,遂求宋神指点改进,在讨论的过程中,不小心整理了一下freesahre的权限体系,如下...

  • 关于Freeshare的点点滴滴

    以前作为小组员在freeshare中添砖加瓦,听从指示完成任务,并学到了不少的细节技巧,现在作为freeshare...

  • 美国片引发的资源思考

    昨天跟朋友去看了《移动迷宫3》,影片一开始就让我想起了《分歧者3》,“我们不是问题,我们就是答案。”对于美国大片,...

  • 引发我的思考

    看了一篇貌似很有道理的说法,说好女孩都是被不怎么样的男人给追到手的,这是为什么呢? 这主要是信息不对称 为什...

  • NPOI 使用笔记

    1 官方资源 github:可以看到最新源代码和例子,推荐查看。 nuget:可下载最新的发布文件,推荐查看。 c...

  • 查看Objective C的C++实现引发的思考

    很早之前看到一篇block原理的blog,里面介绍可以通过clang查看一个文件的c的实现,当时就看了看转化后的代...

  • App反编译

    反编译只为学习使用,切勿发布盗版软件 两种目的: 查看/修改资源文件或smali文件,会用到apktool 查看源...

  • 课堂引发我的思考

    一、今天课前我给学生讲了塔西佗陷阱,结果学生并没有听过这个故事。塔西佗是古罗马的历史学家,他曾告诉高高在上的罗马皇...

  • 向左走?向右走?

    昨晚听了顾老师《欣赏感激、享受丰盛》的线上课,课程讲到了稀缺心态,引发了我的思考。 《稀缺》这本书的引言是:“资源...

  • iOS底层原理 - 性能优化 之 安装包瘦身

    面试题引发的思考: Q: 安装包瘦身方案介绍? 资源(图片、音频、视频等):采取无损压缩去除没有用到的资源(LSU...

网友评论

      本文标题:Freeshare查看“我发布的资源” 引发的思考

      本文链接:https://www.haomeiwen.com/subject/gqosfttx.html