问下大家,日常工作中,在数据库增加了冗余字段和派生字段的时候,对这些字段数据的维护是放到应用层还是使用触发器进行?

2020-04-12 18:51:16 +08:00
 superwhite

对数据完整性肯定有要求,一般我都是在应用层进行维护,但是易出疏漏,特别是需求变更时。很多 bug 都是因为字段没有维护到暴露的。今天看到别的地方有推荐使用触发器进行维护的,所以想问问各位大佬都是怎么维护这些字段的,感谢。

1898 次点击
所在节点    程序员
8 条回复
tomczhen
2020-04-12 19:11:44 +08:00
别的我不懂,别用触发器。
superwhite
2020-04-12 19:29:17 +08:00
@tomczhen 是因为跟运维沟通成本高和维护成本高吗?但是应用层处理的话,多人开发的话,有时候维护不到,就容易出 bug,这个有什么好办法吗?
veike
2020-04-12 20:17:53 +08:00
在应用层可以使用观察者模式处理,不知道可否解决的楼主所说的问题。
veike
2020-04-12 20:23:05 +08:00
还有就是多人开发的话,需要定规范。我们公司没啥规范,这种数据处理的逻辑代码写的特别的散,我无能为力。

我个人处理这种情况一般是把数据处理封装到一个对象的某个方法中,在处理该数据的时候 统一使用该方法。
如果是那种从来不封装数据处理方法的项目,都是写的非常零散的 SQL 语句我是真无能为力。而且我们公司的后端都这么写项目,他们就是一把梭,写的贼快,但是维护起来真难。
项目都没有文档,而且 业务流程也没有文档。 只能靠口口相传,然后他们很多时候就把业务逻辑给忘了,搞的很尴尬。
foam
2020-04-12 20:23:24 +08:00
楼上同学说的观察者,类似 canel 的工具就是很好的提现
zhaorunze
2020-04-12 20:24:27 +08:00
字段没有维护到位是人的问题,要不就是需求太急要不就是程序员粗心。很久没听过触发器是啥玩意了,建议看看阿里开发手册,按照上面的来。
foam
2020-04-12 20:52:56 +08:00
canal 。上面拼错了
God365
2020-04-13 09:51:49 +08:00
@tomczhen 严重同意

如果只有一两个触发器还凑合,你的说的日常工作中加字段用触发器补数据,等后继维护内容多了产生一大把触发器会有你哭的时候

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661733

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX