代码改变世界

推荐排行榜

查找带回——子父页面数据交互

2013-04-08 22:29 by Mike.Jiang, 4164 阅读, 收藏,
摘要: 1 背景在做应用系统时,经常遇到这样的需求:需要弹出一个页面,选择一些数据,并将数据带回到父页面中去。通常有以下几种情况:选择单行记录,并且将文本赋值到textbox,将编号赋值到hidden上;选择单行记录,并且将文本赋值到textbox,将编号赋值到hidden上,最后刷新页面到后台;选择任意多行记录,并且将文本(逗号隔开)赋值到textbox,将编号(逗号隔开)赋值到hidden上;选择限制的N行记录,并且将文本(逗号隔开)赋值到textbox,将编号(逗号隔开)赋值到hidden上;还有其它一些情况,总之,需要提供一个机制,来支持父子页面的数据传输。我将它分成两种情况:选择单行记录,并 阅读全文

数据库设计系列[04]组织结构加入权限系统

2013-01-16 23:01 by Mike.Jiang, 12193 阅读, 收藏,
摘要: 1引言接着上一篇随笔“数据库设计系列[03]权限系统”;在上篇随笔中,只是简单地介绍基于角色和操作访问控制模型,能把权限控制到页面和按钮。CDM图:2 新的需求:组织结构比如在一个大型的手机销售公司有这样的一种部门岗位结构:现在有下面的需求1>要求给用户分配权限时用苹果部门经理、诺基亚部门经理…而不是部门经理这样的岗位;2>要求统计苹果部门经理、诺基亚部门经理的销售业绩;当有上面这些需求时,上篇随笔中的权限模型就无法满足需求。3 加入组织结构后的权限模型我们先不考虑部门信息,这样上面的结构图中就只剩下岗位信息。对这样的需求建模,第一个反应是将岗位(POST)建成树形结构。但是这样一 阅读全文

SQL JOIN --Merge Join

2012-08-27 16:36 by Mike.Jiang, 8082 阅读, 收藏,
摘要: 1概述Merge join 合并连接。两个集合进行merge join,需要有一个等值的条件,然后需要两个已排序好的集合。2 one-to-many与many-to-many2.1 One-to-many当参与merge join的两个集合中,其中一个集合在等值条件上是具有唯一性(如SELECT * FROM T1 INNER JOIN T2 ON T1.A=T2.B,如果T1在A列上具有唯一性),那么即为one-to-many。主要步骤为:首先从两个集合中各取出一条记录进行比较,如果符合join条件,那么取出该行;否则将值小记录从集合中移除,然后取值小集合的下一行,继续比较。2.2 many 阅读全文

SQL参数化查询的另一个理由——命中执行计划

2012-08-02 21:55 by Mike.Jiang, 1907 阅读, 收藏,
摘要: 1概述 SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL是需要通过编译器解释才能运行的(在这之间还要做SQL的优化)。而这些步骤都是需要运行成本,所以在数据库中有一个叫做执行计划的东西,编译器会将编译过后的SQL存入执行计划当中,当遇到同样的SQL时,就直接调用执行计划来执行,而不需要再次编译。 通过对上面执行计划的认识,为了提高数据库运行的效率,我们需要尽可能的命中执行计划,这样就可以节省运行时间。2相关SQL2.1查看当前数据库中所有的执行计划:View Code SELECT cp.usecounts . 阅读全文

点击页面其它地方将某个显示的DIV隐藏

2012-07-12 15:09 by Mike.Jiang, 4258 阅读, 收藏,
摘要: 此文中有一个BUG,改进后点击页面其它地方将某个显示的DIV隐藏(改进)背景:今天一朋友问我“点击一按钮弹出一个DIV,然后要求点击页面其它地方隐藏这个DIV”。先看效果:点击我中文(简体)English点击我,不隐藏语言列表,需要自己隐藏DIV实现也很简单,但需要注意的是,在点击显示的事件中,需要做阻止事件冒泡的处理,否则就触发页面的点击事件了。但这样做也有一个缺点,即如果同一个页面中如果也有事件阻止冒泡,则不能隐藏DIV,所以在这样的事件中需要特殊处理下:自己调用隐藏下DIV(但正常来说这样的事件并不多);JS:View Code $(document).ready(fun... 阅读全文