要不要用触发器?

2015-11-02 16:24:50 +08:00
 wjfz
优点:代码逻辑会简单一点;
缺点:怕以后接手的哥们儿不好处理。

所以你是怎么选择的?
4596 次点击
所在节点    MySQL
19 条回复
neoblackcap
2015-11-02 16:27:08 +08:00
有 DBA 的可以上,没有的话,你还能指望每个 RD 都能填你数据库的坑?
yangtukun1412
2015-11-02 17:07:58 +08:00
很多云平台是不支持 trigger 的
Felldeadbird
2015-11-02 17:19:53 +08:00
支持 1 楼。 触发器这东西嘛,用得好的话,省事省力。但是用不好的话,坑死人。特别是 大多数开发都兼顾 DB 设计。 大多数都不会用触发器的。毕竟 一不小心,掉坑了
southwolf
2015-11-02 17:23:49 +08:00
好多 MySQL 的项目连外键都不用 更不用说视图、触发器、存储过程啥的了……
linnchord
2015-11-02 17:28:17 +08:00
原则上不用,除非个别极端情况。例如希望在不修改代码的情况下实现某些逻辑。
pelloz
2015-11-02 17:30:56 +08:00
除非你们有专门的 DBA 去维护,要不然不要用那些东西。逻辑请直接写到代码里面,数据库就只管存数据。
dong3580
2015-11-02 17:38:52 +08:00
千万不要,千万不要,千万不要。
上次全部更换数据库,存储过程和触发,改的想死,
ruchee
2015-11-02 17:40:23 +08:00
观点同 @neoblackcap @Felldeadbird @southwolf
没专业 DBA 坐镇,别用这些高级玩意,数据库,存取数据就完成使命了,逻辑全部写在代码里,清晰易懂,还可以纳入版本管理
echo1937
2015-11-02 19:02:02 +08:00
触发器和外键之类的高级性能,对 DB 的性能,扩展和维护都会带来额外负担,你获得的那点好处,完全值不回以后要填的坑。

毕竟 DB Server 的扩展难度可比 App Server 大得多,所以即使团队有专业 DBA ,一般也不会推荐你用触发器。
bearzk
2015-11-02 19:34:14 +08:00
我们有专业 DBA 用了 trigger 效果也不错 不过他不在的时候我们都不确定咋搞这个 无奈 所以建议还是不要用了
UtopiaCHN
2015-11-02 20:18:44 +08:00
测试
wizardforcel
2015-11-02 20:20:45 +08:00
如果你以后打算一直用 mysql 就用。
virusdefender
2015-11-02 20:36:22 +08:00
能把逻辑写代码的我都写代码,尽量与数据库无关,以后拓展也方便些
Zzzzzzzzz
2015-11-02 20:42:18 +08:00
@southwolf 虽说 DB 里减少使用这些是为了维护和迁移, 但是 MySQL 里用得不多主要是这些功能早年都没有。。。。
xAx
2015-11-02 20:51:19 +08:00
项目一直用的 oracle,除了索引、视图、序列,其他全部 [禁止] 使用。

一是使项目与数据库无关。二是代码中表现出来的业务逻辑是完整的。三是代码就能完成,没事去弄数据库做什么。
更重要的是:反正我是不知道触发器、存储过程什么的怎么打断点去调试。
kiwi95
2015-11-02 21:13:01 +08:00
@southwolf 视图用的还是挺多的,其他的却是不太常用
akira
2015-11-02 23:37:43 +08:00
见仁见智了。
反正个人是完全不建议使用触发器的,不管是为了避免未来的数据库迁移 /维护,还是更换开发 /维护人员,没有触发器都是会更容易。
chenzhuo
2015-11-03 11:40:44 +08:00
用个触发器还要有 dba 才行?
realpg
2015-11-03 12:02:45 +08:00
发到 MySQL 板块,告诉你千万别用的十有八九是搞 PHP 的…………

真正大型项目,存储过程常态化,触发器满地。
做好文档。

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

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

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

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

© 2021 V2EX