昨晚清电脑桌面,跟打仗似的,又摞了十几个文件夹。年份、项目、类型,一层压一层,刚点保存,余光一撇,桌角那本落灰的旧书直接撞进眼里。《SQL Server 2000实用开发教程》。书脊裂得老长,翻开能抖落半截铅笔灰,满页都是“主键”“外键”“检查约束”“事务回滚”。说实话,这玩意儿现在扔回收站都嫌占内存,我居然一直留着。图啥呢?大概就图个念想吧。

数据库的脾气,你知道的,死板,认死理。每张表必须配个主键,唯一性死磕到底;表与表之间靠外键拴着,线一断,直接给你卡脖子。越界?报错。硬生生按着你不让写。书里那些大段大段的注意事项,说白了就一句:约束加足了,数据才不乱,系统才不崩。规矩定得越狠,跑起来越踏实。我当年也是这么信的。

可人一旦多起来,那套逻辑就穿帮了。刚入行那阵子,我多爱给人贴标签啊。能一块儿熬大夜的叫战友?半夜能打电话倒苦水的算知己?剩下的?全划进“泛泛之辈”。心里早备好了张表,谁想挤进来,先过主键验证。要是哪天越了界,或者联系断了档,不合外键逻辑,我心里立马咯噔一下。下意识就想给这段关系执行“回滚”,假装什么都没发生过。现在想想,真挺可笑的。那时候是把人当字段处理了吧?非得区分个数据类型,否则心里就发虚,不踏实。

后来摔的跟头多了,才咂摸出点味儿。日子过到后来,真正能兜底的,全是从这些严丝合缝的框框里,漏出来的。

比如那些连个明确名分都没有的交情。平时不咋联系,没利益往来,好几年憋不出一句问候。这玩意儿根本塞不进我精心搭的“社交关系表”,连个索引都建不上。可偏偏是这些没法归类的人,真遇上坎儿的时候,递过来最稳当的一把梯子。还有选路。以前我总把人生当单线程事务跑,必须按部就班地“提交”,绝不允许中途报错,更别想“回滚”。万一计划赶不上变化呢?我就觉得自己犯了天大的逻辑错误,焦虑得整宿睡不着。直到有回项目彻底黄了,一段感情也无声无息断了,我才猛地醒过神来。那些让我喘不过气的“约束条件”,多半是我自己给自己上的紧箍咒。当然,话不能说死,规划肯定有用。只是人毕竟不是关系型数据库,真全按主键走,早就死机八百回了。

数据库建索引,图的是查得快。可索引一多呢?写入就卡,维护的功夫直接翻倍。人活一世,怕走错路,怕处错人,怕日子脱轨,于是拼命给自己立规矩、画圈子、设前提。可你越把系统跑满,越容易在某处悄无声息地死机。有时候,干脆留点“脏数据”在那儿。不收拾,不归类,反而能把整个日子过得轻快点。这事儿未必多高级,纯粹是折腾累了,想给脑子腾点缓存空间。喘口气罢了。

我现在也不敢拍胸脯说彻底看开了。底线照守,规划照做。只是不再死磕每段关系都得有个清清楚楚的归属,也不再害怕某些决定压根没标准答案。就像那本老教程里写的,搞备份,不是为了把东西供起来。是系统真崩了的时候,好歹还能有重启的余地。

有些东西,本来就不靠主键来标榜自己独一无二。合上电脑,外头路灯还亮着。明天照样得对付新任务、新联系人、新麻烦。算了,不建文件夹了。让它们就这么散在桌面上吧。要用的时候,总能摸得着。日子嘛,跑通了是运行,跑不通就当临时文件。留着,也无妨。