11th October
2009
以null为标题,一是内容确与它有关,二是内容其实也没什么分量
前两日读CouchDB: The Definitive Guide, 边读边想起两个东西:null与关系型数据库,当年刚接触它们的时候,我就有奇怪的反应
- null
刚开始学c语言的时候,一看到null,我脑子里第一个出现的发反应是“冗余”。就觉得这玩意是多余的,someVar = null, 这么一个毫无意义的东西为什么要存在呢, null的存在本身就是个冗余。后来才发现null所表示的意思与冗余(redundancy)并不相同,只是对null的奇怪感觉就此种下。
- 关系数据库里的表
当初学如何设计一张数据库的表的时候,就觉得把数据提取再结构化成一张张表是很奇怪的行为。提取意味着丢弃了一些数据,有表意味着以后会有不少改变,特别是在听到软件工程课的老师讲需求变化的时候,更觉得把数据阉割了存起来简直就是灾难。而且创建一个字段的时候还有“是否可为null”这种诡异的东西,让我又一次诡异地想起了诡异的null。
好嘛, 如今CouchDB火了。 人家说了:
1. 不存在的东西,咱就没有,不会有xx=null这种东西
2. 咱是文档型数据库,真的数据库,不阉割
3. 关系不这东西,多不稳定啊,时不时你来看一下当前的情况就好了嘛,于是CouchDB有了强大View引擎
null这玩意丢开了(我有我可以啊),不用害怕阉割了,关系不再是僵死的了(随时可以脚踏n条船啊),太鼓舞人了。
为什么要用阉割一词呢?实在觉得有些别扭!