【问题标题】:Should I use a single procedure for multiple operations, or split them into multiple procedures?我应该对多个操作使用单个过程,还是将它们拆分为多个过程?
【发布时间】:2012-11-19 20:30:46
【问题描述】:

我正在为数据库中的几个操作编写存储过程,我只是想知道:

  • 为一个可以执行添加、修改、删除操作或...的表设计一个过程会更好吗?
  • 我是否应该为每个操作设计单独的程序

哪种方法更好?

【问题讨论】:

  • Ashok,请尝试在提交问题前多花几秒钟。请记住,为了尽可能获得最佳答案,最好给您的问题一个描述性标题,并以一种易于在几秒钟内理解实际问题的方式写下来。谢谢。
  • 下次我会照顾你的建议。谢谢
  • @Ashok:下面的任何答案都可以回答您的问题吗?如果是这样,您应该将其中一个标记为答案。如果没有,您当然可以保留问题。

标签: mysql stored-procedures


【解决方案1】:

我会说每个操作都有一个单独的存储过程是最好的。否则,您的程序中会包含太多逻辑。

此外,大多数操作需要不同的参数。对于删除,您只需要主键,但对于插入,您必须提供所有不可为空的列的值。当您只想删除一条记录时,您不想提供虚拟插入参数。

【讨论】:

    【解决方案2】:

    您至少需要几个带有 if ... else 逻辑的 SQL 命令。我发现,如果存储过程只做一件事,它们就更容易管理。

    这是一个可从正常程序开发中转移的概念,但它更适用于存储过程。

    优点:更容易测试、更有意义的 SP 名称(例如 UpdateCustomer 而不是 CustomerHandler)、更少的耦合/更好的内聚、更简单的过程、更少的参数。

    【讨论】:

      【解决方案3】:

      每个过程一次操作。

      【讨论】:

        【解决方案4】:

        你不爱鲍勃叔叔吗:Single responsibility principle

        【讨论】:

          【解决方案5】:

          最好针对不同的逻辑实现不同的程序。

          这样,您可以轻松管理代码并减少依赖关系。

          【讨论】:

            猜你喜欢
            • 2021-03-14
            • 1970-01-01
            • 2017-11-19
            • 2015-07-24
            • 1970-01-01
            • 1970-01-01
            • 2010-09-20
            • 1970-01-01
            • 2015-03-28
            相关资源
            最近更新 更多