首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨应用程序重用SQL存储过程

跨应用程序重用SQL存储过程
EN

Stack Overflow用户
提问于 2008-09-17 15:25:50
回答 13查看 1.3K关注 0票数 2

我对人们在许多应用程序访问的数据库中使用存储过程的方法感到好奇。具体地说,您是倾向于为每个应用程序保留不同的存储过程集,还是尝试使用共享集,还是混合使用?

一方面,当发生模型更改或类似的情况且理想情况下维护较少时,重用SP允许较少的更改。另一方面,如果应用程序的需求不同,则对一个应用程序的存储过程的更改可能会中断其他应用程序。我应该指出的是,在我们的环境中,每个应用程序都有自己的开发团队,他们之间的沟通很差。不过,数据团队有更好的沟通,并且主要负责存储过程的编写。

谢谢!

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2008-09-17 15:34:10

这完全取决于您的抽象策略。是将存储过程视为离散的抽象点,还是将其视为调用它们的应用程序的另一部分。

这个问题的答案将告诉你如何管理它们。如果它们是离散的抽象,它们可以共享,就像你需要新的功能,你需要添加新的过程。如果它们是调用它们的应用程序的一部分,它们就不应该被共享。

票数 1
EN

Stack Overflow用户

发布于 2008-09-17 15:28:41

应该基于要返回的数据创建存储过程,而不是基于发出请求的应用程序。如果您有一个为GetAllItems的存储过程,它应该返回数据库中的所有项。如果其中一个应用程序想要按类别获取所有项目,请创建GetAllItemsByCategory。存储过程的业务规则没有理由根据请求数据的应用程序而改变。

票数 5
EN

Stack Overflow用户

发布于 2008-09-17 15:30:28

我的经验是,多个应用程序共享SP是一种痛苦的原因。事实上,我认为拥有一个由多个应用程序直接访问的数据库并不是最好的长期架构。

我推荐并且已经实现的模式是,每个数据库应该只有一个应用程序“拥有”,并提供API(服务等)。供其他应用程序访问和修改数据。

这有几个优点:

  1. 所属应用程序可以应用任何业务逻辑、日志记录等以确保其保持稳定
  2. 如果架构发生更改,则所有接口都是已知的,并且可以进行测试以确保外部应用程序仍然可以工作
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/84453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档