多个权限的存储结构

我不想在blog上写技术,原因有两个:1.我十分担心写的内容涉及到公司核心技术机密,会被公司的法务抓起来刑讯逼供,要知道这群人都看过风声,手段高明的很,如果在我额头上刻上“间谍”、“叛徒”,以后再也找不到工作。2.怕皋博士发现我并不是和他一样不学无术,天天看AV,这样就会失去我最亲密的朋友,落得百年孤寂。

前几天dexter怂恿我:“你不写技术怎么能彰显你的功力,扩大blog的影响呢?”虽然我很功利,但是显不显功力我倒不在意,后者倒是我担心的关键,我的blog流量最高一天也没超过5个独立ip,偶尔有人也是搜索AV女星、黄色网站来的,虽然我和他们有同样的爱好,但是恐怕让他们失望了,这个blog基本上是属于纯文学范畴。dexter说国内的活跃互联网用户以it民工居多,要抓住他们就要写技术,我过得了皋博士这个心理关口,但还是忌惮法务的野蛮,dexter说不要紧,我去看了他的blog,哇靠,就算我这个不懂js的人也知道土豆前端是怎么写出来的了,就都不算泄密我还怕他奶奶个奶。

我很想写站内搜索,可是题目太大,一时不知从何下笔;想写TDD—测试驱动开发,但发现自己从来没严格执行过;想写项目管理中的思辨,但又觉得太虚;想写P2P开发中要注意的若干问题,但我又不会。这可难倒我了,正巧在做发布,敲些linux command line,想起半年前做的一个后台,里面的权限存储结构设计受到了linux权限的启发,就写这个好了。

问题:一个系统有n个模块,可以自由设定某个管理员可以管理哪些模块,怎么存储这些权限呢?

最直接的想法是数据库表里建立n个布尔型字段,每个管理员对应一串true、false,这样一来表设计就比较啰嗦,这还不是最麻烦的,过两个月产品经理说要增加一个模块,这个模块也要有独立的管理权限,这就逼着你在数据库加字段,很可能要请DBA操作。半年前我就碰到这样一个后台,9个模块,不同的管理员权限范围不一样,当时正在敲chmod 774 *.sh,就有灵感了,r=4,w=2,x=1,3种权限正好用二进制的其前3位表示,9个模块可以用9位二进制数表示,如果以后增加管理模块,只要增加第10位,11位,…就行了,事实上,半年后增加了5个管理项,现在数据库里每个管理员对应着一个整数,只用位操作就知道他的管理范围。mysql里int最大到2147483647,能存30个权限,bigint可以存62个权限,如果用unsigned可以多存一位,超过了这个数字就自己想办法吧!

这个问题讲完了,很简单的东西,但不是每个coder能想得到,写下来希望对某些人有帮助。其实我是不愿意做管理后台系统的,这涉及到大量的表单提交,而表单校验是很无聊的一件事,毫无技术含量,比如用户名是不是只含有大小写字母和数字,身份证号码是不是15或18位出生年月是否合格,url地址是否可以访问,我可以在这列一份五万字的怨念,但除了皋博士没人愿意看这些,想到这篇blog是为广大it民工写的,我就此打住,此致敬礼!

原文发表于2009年11月20日

风儿

2010-03-08,星期一 | 分类:都是朋友 | 标签: | 1,173 views

昨天晚上做梦,梦到和风儿一起考试作弊,行动粗犷、果断、到位,大家很开心,醒来时无比失落,因为我知道这是一个永远无法实现的梦想。

风儿是大学同学,非常正直,我大学时代的朋友或多或少都和我一起做过弊,唯独风儿独善其身。风儿英语不好,第一次英语考试我们四大好手把他围在中间,最后风儿是两个没有过的人之一,另外一个哥们缺考。这个事情让整个数学院都非常震惊,党组织一度想把风儿竖立成“新时代诚信好少年”,最后因为风儿调戏漂亮的政治辅导员告吹(另述,其实他替辅导员背了黑锅)。

风儿因为身上种种的优点,深得广大女生的欢迎(这另贱人、裸人、JiJi、老大、杜傻、柳胖和我非常妒忌);曾经有位著名艺术家写下“你是风儿我是沙”的歌来描述女性群体对风儿的喜爱,在华语世界广泛传唱,经久不衰。风儿经常一周不洗头,两周不洗澡,三周不换衣服,这些数字和他的最高纪录相比简直不值一提,女生似乎特别中意这种不拘小节的作风,我们曾刻意模仿,但他只是轻轻的留下一句“你们没有天分”;这也是我见到Dexter时倍感亲切的原因。风儿乐于学习,涉猎极广,数学、物理、化学、文学、经济、绘画、计算机、电子、电气、环境科学等,样样精通,后来他把注意力全部放到了“日本社会的意识形态及流行文化变迁”的课题上,再后来,他和几个师兄弟东渡日本,进行实地调研,表面上是赴日外包,实质上一逢休息,风儿就会走访红灯区、酒吧、情侣旅馆、援交少女聚集区,收集到很多一手资料,现在很多论坛都能看到他发表的论文,比如摩洛克99bbs情色六月天花和尚黎家大院色界色狼炮妹阵线赤裸羔羊。

风儿无疑是我最重要的朋友之一,每次和他聊天,都受益匪浅,教会我很多做人的道理,朋友们都认为是真知灼见,尽管没有人按他说的实践过。我已经记不起来有多久没见过风儿了,他光辉的形象也在记忆里渐渐模糊,但依然耀眼,我晚上起来上厕所从不开灯,一想起风儿,整个家就被照亮了,给我指明了马桶的方向。

呜呼哉,以此文纪念风儿!

写于2008-10-19,开心网

原文发表于2009年9月17日

折腾

2010-03-08,星期一 | 分类:一地鸡毛 | 标签: | 1,045 views

非常遗憾买下域名整整十天后我才写出第一篇博文,完全辜负了广大网友的期望,特别是那些看不懂汉字的欧美网民,我在这里极不诚恳的向各位道歉,如果你不幸看到了,就当我没说。很多人会问这些天到底都发生了什么,会让我精疲力竭,前言不搭后语,文字里完全看不到智能生命活动的迹象,我就在这里向大家汇报一下吧!

我完全是按Dexter的建议在Godaddy买域名、在盘古买主机,采购过程非常顺利,这和我的预期是一致的,掏腰包之前一切都是那么美好!当我再问他接下来该怎么搞的时候,他说自己是在国内买的域名,你看看生活中有一个不靠谱的朋友是多么要命。打电话给盘古客服问怎么解析域名,客服言简意赅,和我google到的信息差不多,那就搞吧!可是网络上的朋友也不靠谱,解析完后,时而可以访问,时而不能,ping一下,ip居然在国外,这不是放我鸽子吗?难道网友都爱好和平吗?我就不停的谷歌、百度、有道、搜狗啊,域名终于被我解析到国内了,其实也很简单,要删掉默认的A记录。接下来是玩wordpress,选主题,装插件,改页面,很多人纳闷:‘您不是著名视频网站T公司的超级工程师吗?这些对您不是小菜一碟吗?’拜托,我的专长在于高并发高可靠性互联网应用、垂直搜索引擎、机器学习等等这些粗浅的玩意儿,页面上的东西水太深,我搞不定。一边翻wordpress代码,一边抄袭各知名wordpress站点,现在大家看到的就是这么一个山寨玩意儿,如果有人想帮我设计模版我举双手欢迎,并提供精美晚餐一顿,Dexter,你免了。被wordpress玩了之后,我兴高采烈的迎来了端午节,公司的运营工程师们纷纷打来电话向我表达节日的祝福:‘XX系统不正常,你快去看看吧!’、‘XX页面访问量很大啊!数据库连不上出问题了’、‘那个404问题还没解决吗?’。。。好不容易爬过这个假期,又是一大坨事情堆在面前,想想就吐了,这让我十分怀念谭老师,但工作先滚球,赶紧把字码起来,要不皋博士又要拿冲锋枪威胁我了—‘三天内写不出来,枪就不快递给你’,别介儿,下次去缅甸运粉儿我全指望它了。

在看完我惊心动魄的经历后,你可能想到了报警,我只能说“too young, too simple, sometimes naive”,你可能乐了,我只是站起身,轻轻一笑,哥们儿,后面的故事比这要精彩百倍。

原文发表于2009年6月1日