database-design - 您的数据库应用程序中有多少应该在存储过程中?

标签 database-design architecture stored-procedures rdbms

我正在为数据库应用程序编写第二个接口(interface),以解决原始接口(interface)的一些缺点。不幸的是,如果我创建新记录,将不会生成预期的审计跟踪记录。如果数据库设计将这些细节处理到表触发器中,或者为诸如向这些表中插入新记录之类的操作提供存储过程 API,那肯定会很好。

一般来说,应用程序应该这样设计吗?存储过程中应该有多少数据库应用程序?

最佳答案

我们的团队有一条规则——任何进出数据库的数据都必须经过存储过程。我们甚至已经在我们的数据访问组件中建立了限制来强制执行此操作。

至于其他的东西,比如簿记、审计跟踪等,我们也把它们放在存储过程中。触发器很方便,但我们发现,出于审计日志的目的,涉及更新的人员、内容和时间,并非我们想要的所有数据都可重新用于触发器。我们使用触发器的唯一一次是保留表中每条记录的完整更改历史,但即便如此,事后看来,它也会导致维护问题,而存储过程对我们来说会更好。

关于database-design - 您的数据库应用程序中有多少应该在存储过程中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972409/

相关文章:

python - 使用 Python 导入的无限循环;寻找 Pythonic 方式

database-design - 在表中表示多维数据的最佳实践是什么?

c# - 需要对现有系统进行版本控制

python - Django unique_together 并将对象标记为 "deleted"

c# - 如何避免冗余的接口(interface)实现?

web-services - 为什么 Railway IS 不被视为 RESTful Web 服务器?

c# - 将过程结果从 Entity Framework 传递到 View

mysql - 存储过程 VB.NET MYSQL

分类广告项目规范的数据库设计

sql-server - 如何找出哪个存储过程的哪一行发生了错误?