日期:2014-05-16 浏览次数:20397 次
WEB开发中数据库是一个重头工作.
良好的设计对开发工作至关重要.
我一直在寻求一种简洁的,规范化的,可代码流程化的设计.
今天终于让我摸索到了.
数据库的表这样设计
数据库
数据
提交格式(数据以关联数组的形式提供)这样定义
要实现这个接口并不难,因为这个接口的含义很明确,可以适用常用的SQL语句请求,当然这个接口也不是万能的,比较复杂的SQL语句行为还需要特殊的处理
?
数据库操作类的接口设计
业务逻辑问题(也就是接口设计说的1)
这一点举个php的例子
if($ValidateCode){//如果验证码通过了 if($userrole==0){//根据用户角色的不同设置接口函数(action)的行为 function query(){ something; } } if($userrole==1){ function query(){ something; } } }else{ function foo(){} }
?解释,其实对于验证码来说,完全可以统一进行验证,没有必要在action函数里进行验证,这样的话,定义action函数的时候,如果某action函数需要验证后才能执行的话,那就把这些函数定义全都包在
if($ValidateCode)//如果验证通过了
就行了,没有通过验证的话运行期就不会有对应action函数,当然错误处理是另外的事情了.
同样的道理可以根据用户角色的不同设置接口函数(action)的执行体,或者干脆有没有这个action函数.
同样的道理可以根据这种方法以不同的状态标志来定义action函数
其实这种方法也就是根据运行状态判定action 接口了 ,你可以把session中的重要状态做为判定条件
经过这样的契约,前台的action数据提交到后台后经过这些环节
那action接口函数的内容是什么呢?当然主要的是负责如何输出以及相关的行为处理了,不过重头的数据库SQL操作却简单了.几乎把action数据完全传个数据库操作类就完事了.(当然复杂的业务总是要单独处理的)
?
估计看这篇文章的人99%的都是一头雾水.先不管看明白没有,首先会问为什么这么设计 ?