C军

不玩博客了!

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

2013年10月11日

摘要: 一、提出问题 不可避免地,我们都数据库总有一些字段是没有值的。不管是插入一个不完整的行,还是有些列可以合法地拥有一些无效值。SQL 支持一个特殊的空值,就是NULL。 在很多时候,NULL值导致我们的程序出现报错的现象,于是很多人就开始拒绝NULL值,想各种各样的方法来避免使用NULL值,但是很遗憾,NULL值恰恰就是满足我们的需要用于表示空值的。 空值经常存在于我们的数据库当中: 例如一个在职员工的离职时间。 例如一辆电力驱动的车的燃油消耗比。二、反模式 很多人对于NULL值感觉到恐惧,原因在于不知道什么时候就会因为一个NULL冒出一个报错。实际上都是由于对NULL值的理解有误引... 阅读全文
posted @ 2013-10-11 22:08 逆心 阅读(1033) 评论(0) 推荐(0) 编辑

摘要: 多媒体文件已经广泛应用在很多程序当中。比如用户的头像,汽车的产品图片等等。 从我个人以往的经验来看,将文件的路径存储入数据库,然后文件本身存储于硬盘当中已是万年不变的解决方案。 其实,存储图片路径与存储图片文件本身,两种方案都有很好的立足点,但是大部分程序员都是将文件存储于数据库之外。虽然,这种方法没有什么大问题,但的确是存在一定的风险的。一、问题描述 下面就来论述一下关于将文件存储于数据库外部的缺点。 1、垃圾回收问题。 当你想删除一张图片时,你只能够删除掉数据库中的记录,图片文件是没有办法由SQL语句删除的,你必须在你的高级程序中维护着这些图片。保证在删除数据行的同时删除... 阅读全文
posted @ 2013-10-11 19:00 逆心 阅读(1782) 评论(0) 推荐(1) 编辑

摘要: 一、说明问题 其实这篇非常简单,因为大家都是用这个方法解决的,我决定用自己的语言来描述清楚这一个问题。 假设,我们有一个列,这个列只能够取某些有效值。比如一个用户表,我们有一个姓氏列,我们需要限定里面的值为中国的姓氏,比如:赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨。二、反模式 对于这个问题,其实只有初学者可能会用这个方法,就是使用CHECK约束或者触发器来限定列的值,比如: CHECK (lastname IN ('赵','钱','孙','李')); 这样做的缺点如下: 1、获取所有可选值有困难,假设我要做个下拉列表,让用户选择可供输入的 阅读全文
posted @ 2013-10-11 18:29 逆心 阅读(679) 评论(0) 推荐(0) 编辑