前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我们真的用好 SQL 数据库了吗?

我们真的用好 SQL 数据库了吗?

作者头像
Lenis
发布2021-10-22 11:01:44
3530
发布2021-10-22 11:01:44
举报
文章被收录于专栏:有关SQL有关SQL

CRUD,其实也有难的时候

早年在电子厂,开发MES的时候,我经常自以为是的修改老王师傅的代码。王师傅,真的是姓王,(不是隔壁老王玩笑话里的老王)

老王,55岁了,35岁上的大学,自学计算机编程。

印象中,最深刻的是,BOM结构和工艺流程路线。这两个要素,可以说是整个MES与ERP中最复杂的数据结构。

可能外人一看,比如隔壁开发UI的朋友,觉得也没什么。不就是一增一删,一改一查么,能比 angular 双向绑定,适配IE/Chrome 浏览器还难么

但,做过的朋友,肯定做梦都在发誓,以后绝壁不碰这两玩意儿了。

玩笑归玩笑,但凡老板笑着来跟你谈点需求,你一定会拍着胸脯说,今天下班前搞定!你看做技术的朋友,就是没什么心眼儿,做事太直男。既然拍着胸脯说的,加班也要搞定,不是么

那么我呢,经常在这样拍胸脯的场景中,修改老王的代码,认为老王那种过度设计工艺路线的方法,简直耽误开发进度,差点意思。

在这里,我要解释下两个名词儿:

一,是MES, Manufacturing Execution System, 生产制造执行系统

MES是个庞然大物,成熟的行业应用软件。举例来说,制造一台iPhone所经过的所有工序,工人,机器,场地以及材料和经费,都会被MES采集到。

通过分析这些数据,提高质量,控制成本,扩大产能。所以,制造型企业,要上数字化战略,MES肯定先行一步。

二,是工艺路线,即零部件制造流程

下图是我在硅材料加工厂,做晶圆制造时,常用的制造工艺流程图。

一个程序员对芯片生产,能有多少理解?想当然的就认为,它的生产就是一个有序的事件流,步骤1,2,3,4 ……按部就班的走下去。

于是我就设计一张表,记录产品的生产进度,每个生产记录,都有一个工序字段,当道工序做完,就自动进入设计好的下一道工序。也就是大家在图里看到的黑线流水图。

我本以为天衣无缝,自动化到了极致,但事实上,并不是我想的那么简单。

图中,还有红色箭头部分。

由于每道工序,都可以单拎出来,贡献它的生产力。甚至,有的工序间,还有来回的加工。因此,真正上线运行时,状况百出。

当我规定了黑色箭头的流程,写好了响应程序。等正式上线用的时候,果不其然,没多久,工厂负责录入数据的操作员,就来书记办公室抱怨了。

“你们小黄写的程序,怎么到了抛光检测(一道硅材料工序),就没有清洗(又一道硅材料工序)了”

“那你们也没有提,在抛光后检测后,不直接入库,还要继续做清洗啊。我以为就是一步步往下流的”

“来了这么久,不知道工序之间是可以相互回流的吗?你不去生产车间考察的吗”

我x

彻底懵了

闭门造车,我完全被带到沟里去了。我以为的程序,竟然完全没有按照我以为的那样跑。

这些计件拿钱的工人,那愤怒的眼神,就像是要冲上来,狠狠地打我的脸。“你小子坐着办公室,吹着空调,就写出来这些狗屎东西,白白浪费老娘的时间”

就这样,除了修补数据,我连夜把程序修改成配置工艺路线模式。心惊了好几天!

后来团建时,跟老王说到这个事儿,他也不禁笑呵呵的说到,这事儿我就知道你要翻车。工艺路线,我那么写,就是为了能让操作员有更大的灵活度,也方便记录不同工艺的优劣。写死了,你就只能填坑式地补,最后补录数据,自然就都成了你的事儿。

嗯,姜还是老的辣

多年后我再回顾与老王交谈的那个下午,我依然觉得,数据库模式设计的魅力,深深打动着我。

一个好的设计,抵得上好几百个小时的缺陷修补。项目做的越多,我就越害怕设计数据库结构。设计得有缺陷,自己就是那个别人口中的“猪队友”。设计的好,大家都认为那是理所当然。

新开一个项目,就像医生新接一个病人。苦乐自知,明知风险大,依然吾往矣。

那么有没有一招吃遍天下的设计呢,显然是没有的。电商,社交,租约,哪怕是问卷,都有各自的难处。但凡带有这种占便宜,赶进度的想法,最终都会在某个时刻,让你坠入深渊,将你打个措手不及。

再看kimball的维度建模,纵然他总结了每个行业的最佳设计,但行业一直在改变,模式设计还是必须日新月异。他的思想,给我最大的启发,不是那20多个经典的设计思维,而是永远不要因循守旧,必须小心谨慎,大胆创新。

--完--

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有关SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档