摘要:最近一段时间一直在总结过去一年中的经验教训,突然发现还没毕业那会做的项目:一平台,语言是c#,数据库用MYSQL,所以需要写一个类似于SQLHelper的类,虽然不再使用了,拿出来晒晒,说不定哪天会有人需要,也可以参考下。View Code 1 /*---------------------------------------------------------------- 2 // File Name:MYSQLHelper.cs 3 // File Description: 4 * DataBase Deal Layer 5 * 6 // Create Mark: ... 阅读全文
常见数据库设计(2)——历史数据问题之单记录变更
2012-06-05 01:31 by Mike.Jiang, 6513 阅读, 1 推荐, 收藏, 编辑
摘要:在各种应用软件中,客户总是希望看到自己操作关键业务的历史数据(更或者是将来的历史数据,如本年计划明年的商品价格),并且要跟踪变化来源于哪一个版本。历史记录,如果我们按某次修改时,需要新增的记录条件的角度来看,如果只需要新增一条记录(如商品价格的变动,一次只变动),我们称之为单记录变更;如果我们需要新增一条记录,并且还需要在不同的表中新增对应的详细记录并且是一对多的关系时(如报价时,我们需要储存报价流水和报价物品清单列表),我们称之为多记录变更。一,单记录变更、无储存未来历史记录的需求,储存于单表中付款计划 PayPlan 字段名 类型 是否可空 中文名 描述id c... 阅读全文
常见数据库设计(1)——字典数据
2012-05-30 10:33 by Mike.Jiang, 35668 阅读, 1 推荐, 收藏, 编辑
摘要:在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型、游戏类型。。。)。对于这些类型的管理类似,如果为每一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想而之大,并且我们不得不去了解每一个类型表的名字,以去关联它。 因此,我们需要一种数据模型以完成对多种多样类型管理的需求。字典表dictionary 字段名 类型 是否可空 中文名 描述dict_name varchar(50) no 字典名字 dict_value int no 字典值 固定的,不变的字典数据表dictionarydata 字段名... 阅读全文
设计模式_2_简单工厂、工厂方法、抽象工厂比较
2012-05-23 00:02 by Mike.Jiang, 468 阅读, 0 推荐, 收藏, 编辑
摘要:这三个模式主要的应用场景是:当创建单个(简单工厂、工厂方法)或多个(抽象工厂)系列对象,客户程序为了生成某个具体对象判断复杂,可能多处使用,并且在添加新的实现或新的系列时,需要过多改动已有的客户代码,为了解决这些问题,出现了这三种套路。(篇幅有限就不贴代码了) 首先,简单工厂: 在简单工厂中(应对于生成单系列的对象),客户程序仅依赖于Factory和Product类,而不依赖于具体的实现类,CreateProduct方法用于根据传入的参数,生成不同的对象,实际上就是将客户程序中对生成不同实现对象的重构,将创建对象的方法,封装到一个方法中,在这里我们封装成一个工厂类,将生成不同对象的判断逻辑放. 阅读全文
代码调用存储过程超时,SQL Server Management Studio里运行很快 (改进)
2012-05-17 16:42 by Mike.Jiang, 5646 阅读, 3 推荐, 收藏, 编辑
摘要:原文:http://blog.csdn.net/iwteih/article/details/4515267今天同事用代码调用存储过程时超时,在SQL Server Management Studio里运行却很快就有结果,这和我上次遇到的情况一下,现在将解决方案记录如下,谨为大家作一提醒。 解决方案就是: 把存储过程中多余的空格删掉。 瞠目吧结舌吧,不过这就是现实,现实是残酷的,现实是无情的,哈哈 不一定是哪个空格就引起了超时,试着看吧上面的解决方案是将存储过程里的空格去掉,但如果这样,存储过程的格式就不是很友好后期维护也是很麻烦。痛定思痛,于是乎有了下面的解决方案:即然是在数据库里执行成功, 阅读全文
设计模式_1_单例模式
2012-05-16 01:28 by Mike.Jiang, 505 阅读, 0 推荐, 收藏, 编辑
摘要:单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。 应用场景:当系统中需要一个类仅有一个实例时,才需要用到单例(有人会说,那我只实例化一次不就好了吗,如果确定只用一次,并且也不需要考虑扩展,那也是可以的)。但事实上,在很多应用中,会在多个地方用到这个实例,正常的一种解决方案是:在一个公共类中,声明一个静态只读的类空的实例,然后再定义一个静态的方法获取这个实例,在这个方法中判断是否已经存在某个实例。 但是我认为一个类可以被实例化的次数的控制是这个类本身自己的责任,并且当业务需要可以实例化有限个实例,也将改动那个公共类。所以大师们根据以往的经验,提出了这样的.. 阅读全文
SQL模拟padding函数
2012-03-19 19:30 by Mike.Jiang, 522 阅读, 0 推荐, 收藏, 编辑
摘要:在程序中生成流水号时,通常需要用程序语言中的padding函数用0填充不足位;但是在SQL SERVER中,却没有此方法。可以用以下方法替代,以下是生成5位流水号:SELECT replace(str(1,5),' ','0') -- Outputs '00001'SELECT replace(str(123,5),' ','0') -- Outputs '00123'SELECT replace(str(12345,5),' ','0') -- Outputs 阅读全文