C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  SQLServer:开发反模式

开发反模式
摘要:一、目标:编写SQL动态查询 SQL常常和程序代码一起使用。我们通常所说的SQL动态查询,是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句。 string sql = SELECT * FROM Person WHERE Id = $Id 我们期望$Id是一个整型,因此当数据库接收到这个请求时,$Id的值就是查询语句的一部分。 SQL动态查询是有效利用数据库很自然的方法。当你使用程序内的变量来指定如何进行查询时,就是将SQL作为连接程序和数据库的桥梁。程序和数据库之间通过这种方式进行“对话”。 然而,要让程序按照你想要的方式执行并不难,难的是让程序变得安全,不执行你不想让它... 阅读全文
posted @ 2013-10-21 19:22 逆心 阅读(2969) 评论(1) 推荐(1) 编辑

摘要:一、目标:整理数据 有的人有强迫症,他们会为一系列数据的断档而抓狂。 一方面,Id为3这一行确实发生过一些事情,为什么这个查询不返回Id为3的这一行?这条记录数据丢失了吗?那个Column到底是什么?我要为这条数据的丢失负责吗?二、反模式:填充角落 大多数人对于断档的第一反应就是想要填补其... 阅读全文
posted @ 2013-10-19 22:33 逆心 阅读(1373) 评论(0) 推荐(0) 编辑

摘要:一、目标:恢复或重置密码 每个有密码的程序都会碰到用户忘记密码的情况,现今大多数程序都通过E-mail的回馈机制让用户恢复或者重置密码。这个解决方案有一个前提,这个服务有一个前提,就是这个用户能够访问他在注册时留下的邮箱。二、反模式:使用明文存储密码 在这种恢复密码的解决方案中,很常见的一个错误是允许用户申请系统发送一封带有明文密码的邮件。这是数据库设计上一个可怕的漏洞,并且会导致一系列安全问题,可能会使得未取得授权的人获得系统访问权限。 1、存储密码 首先我们设计一张表如下: 类似于这张表,我们插入一条记录的SQL语句如下:INSERT INTO Account (Accoun... 阅读全文
posted @ 2013-10-19 19:00 逆心 阅读(2017) 评论(1) 推荐(1) 编辑