C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 50 下一页

2013年5月28日

摘要: 本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式。一、确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要,甚至必需的部分。这确实是事实,主键是好的数据库设计的一部分。主键是数据库确保数据行在整张表唯一性的保障。它是定位到一条记录并且确保不会重复存储的逻辑机制。主键也同时可以被外键引用来建立表与表之间的关系。 难点是选择那一列作为主键。大多数表中的每个属性值都有可能被很多行使用。例如姓名,电子邮件地址等等都不能保证不会重复。 在这样的表中,需要引入一个对于表的域模型无意义的新列来存储一个伪值。这一列被用作这张表的主键,从而通过它来确定表中... 阅读全文
posted @ 2013-05-28 00:23 逆心 阅读(7878) 评论(3) 推荐(3) 编辑

2013年5月27日

摘要: 一、乱穿马路模式介绍 程序员通常使用逗号分隔的列表来避免在多对多关系中创建交叉表,这种设计方式定义为一种反模式,称为乱穿马路。 例如:在一个产品管理系统中,一个人可以有多个产品,一个产品必须对应一个人,因此有如下数据库: 但是,随着时间的推移,出现了一个产品可能会有多个联系人。于是为了最小限度地修改数据库,可能不少人会将Account_Id的类型修改成varchar,这样就可以列出该列中的多个账号Id,每个Id之间用逗号分隔。这样的设计貌似可行,因为并没有创建额外的表或者列。仅仅改变了一个字段的数据类型就成功达到目的。以下我们来列举一下这样做的缺点。改变之后的数据库外键去掉,同时Pr... 阅读全文
posted @ 2013-05-27 22:22 逆心 阅读(994) 评论(0) 推荐(0) 编辑

2013年5月26日

摘要: 特性的定义:公共语言运行时允许添加类似关键字的描述声明,叫做attribute,它对程序中的元素进行标注,如类型、字段、方法、和属性等。attribute和.NetFramework文件的元数据保存在一起,可以用来在运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。 定制特性attribute,本质上是一个雷,其为目标元素提供关联附加信息,并在运行期以反射的方式来获取附加信息。一、特性的通用规则。 1、定制特性可以应用的目标元素包括:程序集(assembly)、模块(module)、类型(type)、属性(proprety)、事件(event)、字段(field)、方法(me... 阅读全文
posted @ 2013-05-26 19:49 逆心 阅读(1181) 评论(1) 推荐(1) 编辑

2013年5月23日

摘要: 聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这只是默认行为而已。 示例,建表时通过指定主键为非聚集索引使主键列不为聚集列:CREATE TABLE MyTableKeyExample{ Column1 int IDENTITY PRIMARY KEY NONCLUSTERED, Column2 int }一、堆表与聚集表 没有聚集... 阅读全文
posted @ 2013-05-23 15:29 逆心 阅读(1106) 评论(0) 推荐(1) 编辑

摘要: 缓存从分布来说有两种:一、客户端缓存 客户端缓存其实是浏览器的事情,当我们去访问一个新的网站的时候,第一次可能要花一阵子时间才能载入整个页面。然而以后再去时间就会大大缩短,原因就在于客户端缓存。现在浏览器都非常智能,它会在客户机器的硬盘上保留许多静态的文件,比如各种gif,jpeg等等。等以后再去的时候,它会尽量使用本地缓存里的文件,只有服务器端的文件更新了,或是缓存里面的文件过期了,它才会再次从服务器端下载这些东西。很多时候是浏览器替我们做了这件事情。二、服务器缓存 有些东西没有办法或者说是不适宜在客户端缓存的,这个时候就必须在服务器端想办法了。服务器端缓存从性质上看,又可以分为两种... 阅读全文
posted @ 2013-05-23 14:20 逆心 阅读(749) 评论(0) 推荐(0) 编辑

2013年5月21日

摘要: 进程那篇深度不够进程那篇深度不够进程那篇深度不够进程那篇深度不够进程那篇深度不够http://www.cnblogs.com/kissdodog/archive/2013/05/20/3089127.html 阅读全文
posted @ 2013-05-21 12:50 逆心 阅读(597) 评论(0) 推荐(0) 编辑

摘要: 一、系统过滤器使用说明 1、OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以很长,但实际上当系统资源紧张时,缓存空间还是会被系统收回。 VaryByPa 阅读全文
posted @ 2013-05-21 12:30 逆心 阅读(11961) 评论(4) 推荐(6) 编辑

2013年5月20日

摘要: 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。 进程可以理解为一个程... 阅读全文
posted @ 2013-05-20 18:51 逆心 阅读(6873) 评论(0) 推荐(2) 编辑

摘要: 在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopwatch这个东西,太可悲了。属性: Elapsed 获取当前实例测量得出的总运行时间。 ElapsedMilliseconds 获取当前实例测量得出的总运行时间(以毫秒为单位)。 ElapsedTicks 获取当前实例测量得出的总运行时间(用计时器计时周期表示)。 IsRunning 获取一个指示 Stopwatch 计时器是否在运行的值。 方法 GetTimestamp 获取计时器机制中的当前最小... 阅读全文
posted @ 2013-05-20 16:50 逆心 阅读(6300) 评论(1) 推荐(0) 编辑

2013年5月16日

摘要: 互斥体实现了“互相排斥”(mutual exclusion)同步的简单形式(所以名为互斥体(mutex))。互斥体禁止多个线程同时进入受保护的代码“临界区”。因此,在任意时刻,只有一个线程被允许进入这样的代码保护区。 任何线程在进入临界区之前,必须获取(acquire)与此区域相关联的互斥体的... 阅读全文
posted @ 2013-05-16 22:39 逆心 阅读(2347) 评论(1) 推荐(4) 编辑

上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 50 下一页