防止数据库数据重复的几种方法

2015-01-07 17:17 评论

在某些数据库表中,比如记录的是一些关联关系,比如某个人关注了另外一个人,person_id和target_id,这种数据表的数据如果出现了重复,可能会引起程序上其他地方的诡异bug,要尽量保持数据的唯一性。这种数据重复,要不就是插入数据时根本没有做存在检查,或者是可能由二次提交产生的比较麻烦的并发情况。

1. 代码层做同步控制,利用锁机制
2. 在数据查重时利用数据库事务 + SQL层加入排他锁,select * from xx where ... lock for update
3. 数据库层Unique检查,建表时加入unique的索引

前两个方法在代码层面,比较容易控制,第三种方法最彻底但是出现冲突时候会报异常。

不过如果在高并发的情况下,使用第三种方式然后主动捕获异常,也是很不错的甚至是最好的。

Categories: Life in Coding 标签: , ,

Ruby字符串的编码

2014-12-21 17:17 评论

相比较于Java String的编码转换(先将String根据原字符集转化为字节数组,然后再用字节数组根据新字符集拼装成新的字符串),Ruby的字符串编码转化省去了中间字节数组的过程,直接string.encode(new_encoding)即可。

阅读全文…

Categories: ruby on rails 标签:

青岛,成也机票,败也机票

2014-11-17 15:15 评论

真是成也机票,因为真是不能再便宜的来回机票决定这次的旅行,败也机票,去青岛居然因为40分钟领登机牌的限制而误机了而重新买票,多花好多钱更影响了旅行的心情(详见:机票风波)!在作死的误机下在不对的季节里在雾霾的笼罩中,青岛的美对我始终带了太多遗憾,不过还是值得玩这3天的。

青岛-from小青岛

青岛-from小青岛

青岛除了众所周知的海水沙滩浴场和奥帆外,德国式建筑群很值得一看。青岛市区的地形也真的是醉了,如果一个人说北方的城市规划都整齐不像南方城市的小巷胡同错综复杂,那Ta一定没去过青岛!青岛市区里真是难找到一条既水平又直线的大路,坡度陡的令人咋舌,十字路口?多的是三字、五字、六字…全区好多的路名用全国省市区名来命名,也怪不得有浙江路和杭州路(杭州路在全国真的很少)。

阅读全文…

linux的timeout处理wkhtmltopdf进程超时

2014-10-25 22:22 评论

rails程序中要调用一个系统命令,但是这个系统命令在某些时候可能会处理很久也得不到结果,就需要控制超时情况。

阅读全文…

Rails中has_many等的原理

2014-10-04 23:23 评论

刚接触rails的时候着实被has_many给惊到,这么厉害的功能,尤其是has_many的延迟加载,直到真正需要读取数据的时候才会进行SQL查询(person.posts.size,并不会执行select *到内存后再对Array执行size),但是用普通的调试方法怎么看has_many的结果是一个Array,比如.class方法,然后就觉得很神奇。

阅读全文…

Categories: ruby on rails 标签:

乌镇真没意思

2014-09-22 23:23 评论

周末去了乌镇玩。在上周连续下了3天雨并且今天也下雨的情况下,周末愣是放晴2天老天爷也真是蛮拼的,太给面子了。可惜的就是,乌镇真是太TM没意思了,晚上的西栅勉强过得去看看,东栅真TM是骗钱的地方,幸好住的东栅的民宿没付门票钱。可能主要因为是LZ本来就是南方人,水乡古镇砖瓦小船不是什么新鲜东西。

乌镇西栅-夜景

乌镇西栅-夜景

阅读全文…

Categories: Life in playing 标签:

T400快挂啦

2014-09-22 21:21 评论

8.24周日夜晚,打着dota,最后一把还输掉了,快结束前看到连着语音的笔记本的屏幕突然暗了,还以为是自动关机了。第二天发现是屏幕不会来了,OS能够正常启动,外接VGA到液晶显示器就OK。想着可能是屏幕又坏了,无奈只能送修检测。

阅读全文…

Categories: Life in life 标签:

记C#和Excel开发

2014-09-10 15:15 评论

需要一个windows环境下的工具,能够读写Excel。这个Excel比较复杂,内嵌VB脚本,写Excel的时候必须得保留这些原有的脚本数据。

阅读全文…

Categories: Life in Coding 标签: , , ,

简析Rails:active_support 2.3.5

2014-07-28 21:21 评论

项目中用到Rails2.3.5,就以此版本研究。和Rails本身相关的,大概有actionmailer(发邮件相关)、actionpack(HTTP和controller相关)、activerecord(ORM框架)、activeresource、activesupport(基础扩展库)。

阅读全文…

Categories: ruby on rails 标签:

rails中慎用request.env

2014-07-19 11:11 评论
Categories: ruby on rails 标签:

杰伦,祝你幸福!

2014-07-07 23:23 评论

最近拖延症真是厉害,杰伦要结婚的新闻都好久了才发出这篇博客。

想当年,记得很清楚,初一的时候在小学同学许原非爷爷家的天台上听到了《双节棍》,第一次听到了周杰伦的声音,显然被震惊吓尿了。然后就开始听《范特西》了吧,范特西特么太好听了周杰伦你造嘛,就沦陷了…小时候穷,没法用现金支持杰伦,只买过2-3盘磁带,那时候CD机什么的实在太高端,好用的一只随身听还是从2b锋那边借过来的(然后就没还,哈哈哈),唯一的CD还是温州的一个远方亲戚开过CD店送了我一盘其实我不是很喜欢的专辑《叶惠美》,一直珍藏到现在。

阅读全文…

Categories: Life in life 标签:

ruby on rails

2014-07-07 21:21 评论

工作需求,开始写ruby,因为基于web也就自然用上了rails。就这样开始接触ruby on rails,在已有代码的基础上很快就能上手开发了。刚开始对ruby可能有各种吐槽,不过写习惯了之后真心觉得ruby语言本身挺不错的,比Python的语法舒服多了呢。

阅读全文…

Categories: ruby on rails 标签: , ,

小心使用input的onchange事件

2014-06-17 14:14 评论

入职两个月了,做了2个项目,都用到了这个功能:在input中输入进行搜索,每次修改(键盘敲击)都会进行一次搜索结果返回,然后对返回的结果数据进行一些js和ajax的操作。

阅读全文…

Categories: Javascript 标签: ,

wordpress改源码实现自定义URL到自定义页面

2014-03-12 1:01 评论
wordpress

wordpress对于新闻发布系统来说不能更优秀了,对于一般的门户和博客类网站的大部分需求都能符合,但其毕竟不是类似于joomla这样的自定义化程度更高的平台,在wordpress中只能依靠theme和plugin这两块很小地修改原本的功能和增加新的功能。一直有如此的需求,比如用wordpress搭建一个公司门户,需要一个产品列表的页面,这个页面需要完全自定义的程序去实现,无法实现为一篇文章或者一个页面,这在wordpress原来的系统中似乎很难实现。
阅读全文…

Categories: Wordpress 标签:

wp_sns_share更新至2.8,添加小功能

2013-12-05 22:22 评论

虽然老早换了新域名,但是这几天老域名没有续费就失效了,没想到引起了wp_sns_share插件的正常工作导致授权失败(新浪微博和Twitter的登陆授权部分受到了影响,因为OAuth的授权流程callback到此站目录下的对应文件,域名变化后文件无法访问),老用户只要不注销是不会受到影响的所以我也一直没有发现,新用户就会无法使用直到热心网友的提示。在这里多谢obaobao网友和joe网友。

既然要发布新版本2.8了,也就顺便带上早已开发好的两个2小功能。

  1. 后台自动同步中,自主选择中的图片同步,加入选择同步第几张图片的功能(之前默认为第一张),这个还是蛮有用的对于多图的文章。
  2. 后台自动同步中,自主选择中的文章摘要同步,加入自定义功能。

这俩功能一直自娱自乐了很久,今年忙着找工作就一直没因为这俩个小功能去发布新版本了,正好借这次机会。

阅读全文…

Categories: Wordpress 标签: