历史 | 登录     查看当前页的打印版本.  
问题详情 (XML | Word | Printable)

Key: MW-2
类型: Task Task
状态: Resolved Resolved
解决: Fixed
优先级: Major Major
开发者: 刘 洛麒
报告人: Allan Zhang
投票: 0
关注人: 0
操作

如果你是 登录 你不能看到更多操作.
MetaWork

通用查询模块设计

创建: 07/四月/08 11:57 上午   更新: 01/十一月/08 05:13 下午  逾期: 10/四月/08
回到搜索
模块: metawork-core
影响版本:
修复版本:


 描述  « Hide
设计通用查询模块的基础框架。用文档描述,要提交框架性代码

文档:http://www.lingdot.net/wiki/pages/viewpage.action?pageId=3276829

 所有   备注   改动记录      排列顺序: 升序- 点击点降序排序
Allan Zhang - 02/七月/08 11:28 下午
查询xml样例:

<query target="user">
<projections>
<item type="count" property="id" alias="user_id"/>
<item type="group" property="gender"/>
<item type="avg" property="age"/>
<item property="application.id"/>
<item type="sum" property="application.id"/>
</projections>
<condition>
<group>
<item name="organization.id" operator="in">
<value>
<query target="organization">
<projections>
<item property="id"/>
</projections>
<condition>
<item name="name">零点工作室</item>
</condition>
</query>
</value>
</item>
<item name="age" operator="between">
<value>10</value>
<value>20</value>
</item>
<item name="age" operator="gt" value="10"/>
</group>
<group relation="or">
<group relation="and"></group>
</group>
</condition>
<order>
<item type="asc">age</item>
<item type="desc">weight</item>
</order>
</query>

Allan Zhang - 09/七月/08 10:00 上午
权限是在功能上定义的,一个人有了某个功能,那么理论上就意味着他能够访问这个功能下的所有数据,而节点上定义的查询条件只是一种表层的数据划分,最终列表数据的范围是二者的交集,这只针对这个列表,在其他地方,这个人的数据访问权限应该只是功能上定义的范围。

例如,在某种场景下,无法得到节点的查询条件,那么将会仅采用功能上的权限设定--要说明的,这不是数据权限存在问题,因为数据权限是根据功能来的。

例如一个人有文章分类查看功能,功能上定义的数据权限条件是C1,在树上配置一个节点叫做文章分类,节点上有限制条件C2。那么点击节点出来的列表中的数据范围应该是C1*C2。再此列表中点击查询,应该根据其它参数可以确定是否要带着节点上的数据条件C2。也就是说,在这个列表中查询的话,最大的可能数据范围是C1--在查询中是否带着C2,由列表界面上的script决定。

在这个列表上面有一个"查看文档"按钮,查看选中分类下的文档。调用的功能是文档列表,并且传入了所属分类为某分类这个条件C3.此时我们假设这个人所拥有的文档列表功能上也有数据范围条件C4,所以最终出来的文档列表数据条件是C3*C4。在这个列表中点击查询的时候,功能上的条件C4是一定会带着的,但条件C3的带与不带,则决定于这个列表上的script(默认值应该是带着的--这可以根据传递过来的C3得到并自动加入到查询条件中)。


查询条件下拉框中,显示的项目默认是当前实体的所有属性,可以通过script过滤某些属性