当前位置:首页 > 问答 > 正文

数据库其实就是系统设计里绕不开的那个关键点,没它很多东西都难以搭起来

(来源:一位资深软件工程师在技术分享会上的非正式谈话)

“我跟你说啊,你琢磨琢磨,咱们现在做的这些个系统,甭管是手机上那个能买饭、能打车的APP,还是你上班打卡、请假的那个网站后台,甚至是你在网上看的新闻、刷的视频,它们最怕啥?最怕的就是‘记不住事儿’,你今天在这个APP上注册了个账号,填了名字、电话,第二天再打开,哎,它不认识你了,让你重新注册,你火不火大?你往购物车里加了半天的东西,一刷新,空了,你气不气?所以说,一个系统要是想像个‘活’的、能用的东西,它首先得有个好记性。

这个‘好记性’是啥?说白了,就是数据库,你别看这两个字听起来挺技术、挺唬人的,其实它的核心作用特别简单,就跟咱们家里那个放杂物的储藏室,或者公司那个档案柜差不多,你想啊,你家是不是得有个地方,专门放户口本、房产证、各种合同?你不能把这些重要东西随手扔沙发上吧,那肯定得找个固定的、稳妥的地方收好,并且还得大概知道是怎么归类的,这样需要的时候才能马上找到,公司也一样,所有员工的入职信息、工资条、报销单,都得有地方存着,而且不能乱,一乱就全完了。

数据库其实就是系统设计里绕不开的那个关键点,没它很多东西都难以搭起来

数据库干的就是这个活儿,它就是系统里头那个专门负责‘收纳’和‘记忆’的超级大柜子,所有需要被记住的东西,比如用户的账号密码、发布的文章内容、交易记录、你的浏览历史,全都分门别类、整整齐齐地放在这个柜子里,系统前面那些花里胡哨的界面,那个你手指头点来点去的屏幕,那些漂亮的按钮和动画,它们都是‘前台’,是跟咱们打交道的地方,而数据库呢,后台’那个默默无闻的管家。

这个管家有多关键呢?我打个比方,盖房子你总得先打地基吧?数据库就是这个地基,你楼盖得再漂亮,装修得再豪华,要是地基没打好,稍微来点风吹草动,整个楼都得晃悠,甚至塌掉,系统也是这个道理,你前面功能设计得再酷炫,用户交互体验再流畅,要是后面这个‘记事儿’的管家不靠谱,数据存丢了,或者存乱了,或者找起来特别慢,那前面所有的功夫都白费了,用户可不管你后面用了多牛的技术,他只知道他用着不爽了,出问题了,那他下次肯定就不用了。

数据库其实就是系统设计里绕不开的那个关键点,没它很多东西都难以搭起来

而且这个管家还不能是死脑筋,它得特别机灵,比如说,成千上万人同时在这个APP上抢票,大家都点‘购买’,这个管家就得能处理这种‘挤破门’的情况,它得保证,一张票只能卖给一个人,不能出现超卖,这就好比一个超级售货员,面对一群同时伸手要货的顾客,他能又快又准地把货交到每个人手上,还不出错,这个能力,就是数据库提供的。

再比如,你想在电商网站里找‘价格从低到高’的手机,或者想看看你去年三月份的订单,这个管家就得能立刻从海量的商品信息、订单记录里,把你想要的东西精准地挑出来,排好序送到你面前,这种‘大海捞针’还捞得特别快的本事,也是数据库的核心能力。

所以你看,为什么说它绕不开?因为几乎所有的系统,它的价值就在于处理‘信息’,而信息从哪来?要么是用户产生的,要么是系统自己生成的,这些信息总得有个归宿,这个归宿就是数据库,没有这个归宿,系统就成了一个健忘的傻子,或者一个杂乱无章的垃圾堆,根本谈不上‘有用’,你可以换不同的家具(指前端的界面设计),可以改变房子的装修风格(指用户体验),但你没法不要地基和承重墙,数据库在系统设计里,扮演的就是这种支撑性的、基础的角色,没了它,很多东西确实就搭不起来,或者搭起来也是个一推就倒的空中楼阁。” 结束)

备用