gpt4 book ai didi

mysql - 我应该害怕还是拥抱数据库触发器?

转载 作者:行者123 更新时间:2023-11-29 23:08:53 25 4
gpt4 key购买 nike

到目前为止,我还没有使用过数据库(MariaDB/MySQL)触发器。我也避免使用外键。

这种恐惧基于:

  1. 如果我忘记添加触发器以使表格有意义怎么办
  2. 我宁愿手动执行此操作,仅使用 RDBMS 作为存储和搜索数据的方式
  3. 只需遵循 DRY,我就可以(有效地)在我的代码中设置一个触发器

但是,我了解到,通常不接受这些事情我会遇到困难,因此我来找您(专家),通过告诉您我目前的情况来确定我是否应该做出改变。

情况:

我有一个“集合”,它以类似 java 的命名包的形式到达,例如“com.example.collection”,它有多种类型的东西。

“one”可能是 A 类型,因此“com.example.collection.one”是 A,

“two”可能是 B 类型,依此类推。这些类型是固定的(所以假设我们只有类型 A、B、C 和 D。它们没有添加或类似的东西)。

其中每一个都存储在自己的表中,包含有关特定事物的详细信息。

一个常见的任务是查找某个包名称可能是什么(例如“com.example.collection.one 是什么”)

我面临要么使用 View ,这将涉及连接,因此优化器不容易优化,或者我可以创建一个索引表并使用触发器来保持其有序。这可以是索引并使查找变得容易。

所以我的问题是这样的:当他们第一次接触 C++ 时,我的行为是否像某人一样(他们无法相信内存管理能够工作,就像我不确定我是否可以信任触发器一样,尽管他们会内部交易) - 我认为答案是可能的。

这是触发器的一个很好的用途吗?

最后,触发器有哪些缺点,我列出的那些都非常弱且可疑,有什么真正的理由不使用触发器吗? (实际上还有删除之类的外键(当然前提是它们使用起来有意义))

最佳答案

我认为这个问题可能更适合 dba 或代码审查。这更多的是一个没有固定答案的讨论。

我比你落在频谱的另一边。我已经花了数百万年(在 mysql 强制执行外键之前)做 RDBMS。我爱他们。

关于您的担忧,很容易组合工具来克服您(或您的组织)的缺点。

关于mysql - 我应该害怕还是拥抱数据库触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28162947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com