网易首页 > 网易号 > 正文 申请入驻

数据库存储过程、表触发事件、视图应该不应和代码业务耦合?

0
分享至

数据库存储过程到底该不该用,按照我一贯的编程思想,也就是高内聚、低耦合的编程理念,我觉得像存储过程、触发事件这种东西最好能不用就不用,除非贵公司有一套完整的数据库管理方案,否则可能会遇到不必要的麻烦!



存储过程丢失

上家公司的一个编程能力一般的同事找到我,说代码里面报了一个数据库错误,他没看明白啥意思。我一看,这不就是存储过程不存在的错误嘛!

于是,我就让他找公司DBA去看看数据库有没有这个存储过程,结果他跟我说,这个存储过程在数据库里面没有找到!

因为这里的代码是我写的,他还问我当初调用这个存储过程的时候难道没发现这个错误吗?这问题把我问的,要知道,我离开这家公司都四五年了,过去的事情早忘了!问我当初有没有发现这个错误,我哪知道!

而且,即使当初我写的代码里面调用了这个存储过程,如果有问题其实早就应该发现的,因为报错的代码应该经常被用到才对,如果有问题不会到今天才发现。

还好,最后真相大白了,因为这家公司有很多定制化开发需求,而这些定制化需求都是使用插件式开发动态加载的功能,而软件和数据库是单独部署在客户服务器上的。然后,公司让这个程序员修改这个个性化需求的插件,结果这个插件需要调用存储过程,但公司环境里面没有这个存储过程,所以报错了!

我听说原因以后,以前在这家公司敲代码时的经历就立马涌上了心头,因为类似的事情出现的太多了!

数据库和业务耦合带来的问题

出现问题的首先就是存储过程,其次是表触发事件,然后就是视图。

存储过程出现的问题一般就是找不到,或者每个客户那边部署的数据库存储过程写得都不太一样,导致了程序业务异常。

表触发事件经常会导致死锁,或者因为有些客户那边的表有触发事件有些没有,导致了业务异常。

而视图问题就经常出现了,因为可能每家客户需要的数据都不一样,因此视图写得不一样也很正常,虽然在软件端可以通过配置来选择显示哪些数据,但是如果某个字段在视图里面没有显示,即使软件端配置了也会出问题。

一般来讲,出现上述问题,程序员是必须要去找DBA的,因为我是不负责写数据库的,一般都是由DBA根据客户需求来写的。

当然,正常访问数据库去取数据,程序员还是需要关心一下数据库的。

可是,这家公司的管理数据库的人一般都是薪资比较低的一些计算机专业的人,他们本身就不是那种专门研究数据库的人,因此会闹出很多笑话来。

换个说法,我认为我数据库知识只局限于增删改查,但是他们可能只跟我处在同一水平!这样的人管理数据库,不出问题才怪。

我觉得像存储过程这种东西,本身存在就有问题。因为存储过程代码跟业务是耦合的,这部分的事情完全可以通过代码去做。

尤其是现在动不动就Redis,都是在内存里面操作数据,存储过程就更加没有必要了!

其实往回倒几年,很多关于程序员的招聘要求里面都会要求程序员会写和使用存储过程,但是现在基本上都看不到这种要求了!

尤其是现在ORM框架的流行,直接操作数据库这个事情基本上已经不怎么常见了,就是要做到把代码移到另外一台机器上,不需要手动建立数据库表,代码也能跑!

比如说现在一般都是把表实体放在代码中,加个标记让它在使用时自动建表。

如此一来,程序员能够更加专注于代码实现而不用在意他所不知道的东西。比如我在调用某个存储过程的时候,我还得去看这个存储过程是怎么写的,虽然这样也不麻烦!

或者举个例子,如果数据库表内有个表触发事件,但是程序员不知道,那么可能就会导致意想不到的事情发生,或者代码里和触发事件当中的逻辑重复。

结语

我简单总结下我的思路,您就能大致明白我的意思,我的意思总结一下就是,一个优秀的代码框架应该是就像前后端分离一样,两边各自关心自己的事情就可以了。而代码离开了数据库,不应该受数据库牵制,代码就是代码,数据就是数据,代码负责业务逻辑,而数据库不参与业务逻辑!

声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
各地开始追缴欠税,30年前的旧账也要算!该不该对企业那么严?

各地开始追缴欠税,30年前的旧账也要算!该不该对企业那么严?

王五说说看
2024-06-16 10:42:12
新娘婚礼上播放AI复原已故婆婆影像:当晚爱人反复看视频 仿佛母亲“看到”他结婚了

新娘婚礼上播放AI复原已故婆婆影像:当晚爱人反复看视频 仿佛母亲“看到”他结婚了

极目新闻
2024-06-16 13:41:50
玫瑰的故事:刘亦菲的瘪臀、粗腰、粗腿,是对内娱畸形审美的反击

玫瑰的故事:刘亦菲的瘪臀、粗腰、粗腿,是对内娱畸形审美的反击

喵喵娱乐团
2024-06-14 17:56:07
下周一6月17日,这 4大具有爆发力板块或有望开启反攻

下周一6月17日,这 4大具有爆发力板块或有望开启反攻

惜别的海岸
2024-06-16 17:48:39
中国重大决策:不能让中国的洪水白白流走

中国重大决策:不能让中国的洪水白白流走

科技良言
2024-06-16 07:28:13
马英九悄然无声将“台湾省”三字抹掉

马英九悄然无声将“台湾省”三字抹掉

雪中风车
2024-06-16 16:55:00
疯传!女员工表白大20岁副行长,言语肉麻发错群,银行回应来了

疯传!女员工表白大20岁副行长,言语肉麻发错群,银行回应来了

懂瓜瓜
2024-06-15 20:12:37
全球震呆!法国极右登台惊变,竟因不满穆斯林愚昧,誓要驱逐移民

全球震呆!法国极右登台惊变,竟因不满穆斯林愚昧,誓要驱逐移民

真实星球
2024-06-15 23:06:08
巨亏百亿,关店11万家!昔日购物天堂,无力回天

巨亏百亿,关店11万家!昔日购物天堂,无力回天

金错刀
2024-06-14 14:28:04
新冠疫后,罕见癌症大增

新冠疫后,罕见癌症大增

霹雳炮
2024-06-13 23:40:49
媒体人:欧洲杯现场广告都是真实的,没有采用虚拟广告技术

媒体人:欧洲杯现场广告都是真实的,没有采用虚拟广告技术

直播吧
2024-06-15 18:41:04
0:3!日本女排和美国女排做局!一箭双雕!干掉荷兰女排与加拿大

0:3!日本女排和美国女排做局!一箭双雕!干掉荷兰女排与加拿大

开心体育站
2024-06-16 23:10:23
国内智能手机排名重新洗牌:OPPO跌出榜单前五,第一名遥遥领先 !

国内智能手机排名重新洗牌:OPPO跌出榜单前五,第一名遥遥领先 !

最潮家居评
2024-06-16 10:58:59
F-16登场,留给侵略者耀武扬威的时间不多喽

F-16登场,留给侵略者耀武扬威的时间不多喽

临墨有余
2024-06-13 09:06:39
打脸!爽文路大反派终成现实,诬陷姜萍考试作弊!刘奔力挺太解气

打脸!爽文路大反派终成现实,诬陷姜萍考试作弊!刘奔力挺太解气

娱记掌门
2024-06-16 23:43:25
一代女神“余音绕梁”:纪念林徽因诞辰120周年特展举办

一代女神“余音绕梁”:纪念林徽因诞辰120周年特展举办

澎湃新闻
2024-06-15 16:56:28
果然,没有人比中金更懂M1!-4.2%,意味着什么?

果然,没有人比中金更懂M1!-4.2%,意味着什么?

金石随笔
2024-06-16 00:35:36
记者扮男客潜入采耳店,偷拍服务全过程:女技师、柔式按摩别有洞天

记者扮男客潜入采耳店,偷拍服务全过程:女技师、柔式按摩别有洞天

古今档案
2024-05-07 13:04:58
理想车友聚会多车连环追尾的瓜

理想车友聚会多车连环追尾的瓜

一个岛岛
2024-06-16 16:42:12
“花几百块让朋友出丑一个月”,地铁广告成了00后最新社死神器

“花几百块让朋友出丑一个月”,地铁广告成了00后最新社死神器

科学发掘
2024-06-16 12:45:06
2024-06-17 00:52:49
程序员古耕
程序员古耕
程序员、网文作家、自媒体人
393文章数 291关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

欧洲猪肉业界:中国若限制进口将是梦魇

头条要闻

欧洲猪肉业界:中国若限制进口将是梦魇

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

本地
时尚
房产
艺术
公开课

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

伊姐周日热推:电影《沙漏》;动漫《眷思量2》......

房产要闻

万华对面!海口今年首宗超百亩宅地,重磅挂出!

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版