【问题标题】:Organize SQL in components with interfaces and private code使用接口和私有代码在组件中组织 SQL
【发布时间】:2012-07-23 05:50:37
【问题描述】:

我正在修改一个在 SQL (MS SQL Server 2008 R2) 中实现了很多逻辑的应用程序。从逻辑上讲,业务逻辑可以拆分为许多不同的组件。

当前的实现是非常非结构化的:每个过程、函数、视图到处访问和写入数据。我想将应用程序组织成更小的单元,就像使用 JavaEE 应用程序一样:具有公共接口的小型 JAR,但隐藏了持久层和业务逻辑实现。

除了“私有接口表或存储过程”之外,是否有任何默认概念如何定义“公共接口表或存储过程”。在第一步中,使用命名约定可能就足够了。但如果有更好的方法,请告诉我。

[编辑] 由于我们仅限于使用 MS SQL Server:您如何看待在同一数据库中为每个模块定义单独方案的概念?

【问题讨论】:

    标签: sql stored-procedures interface sql-server-2008-r2 components


    【解决方案1】:

    除了数据库表和过程的访问控制之外,没有其他真正的等价物,这与 OO 系统组织可见性的方式不同。

    最好的情况是将尽可能多的逻辑从存储过程转移到应用程序层并处理那里的混乱。如果这不太可能发生,我会考虑重构您的函数,以便它们仅执行单个操作(逻辑上)。如有必要,您可以将类似的存储过程归为一个,并让应用层仅通过这些函数进行操作。

    【讨论】:

    • 我同意持久层不应该包含任何逻辑。在我们的特殊情况下,DB 不仅负责持久性,而且将来也会包含逻辑。这是我无法改变的。
    猜你喜欢
    • 2014-12-01
    • 2010-09-20
    • 2018-08-24
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2018-10-12
    相关资源
    最近更新 更多