1

我正在使用SQL(MS SQL Server 2008 R2)中实现的大量逻辑重新处理应用程序。逻辑上,业务逻辑可以分成许多不同的组件。组织接口和私有代码组件中的SQL

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

是否有任何默认的概念如何定义“prive接口表或存储过程”旁边的“公共接口表或存储过程”。在第一步中,使用命名约定可能就足够了。但如果有更好的方法,请让我知道。由于我们仅限于使用MS SQL Server:您如何看待在每个模块的相同数据库中定义单独方案的概念?

回答

0

除了数据库表和过程的访问控制以外,没有什么真正的等价物,这与面向对象系统组织可见性的方式不同。

最好的情况是将sprocs中的逻辑移入应用程序层,并处理那里的混乱。如果这不可能发生,我会考虑重构你的函数,以便它们只执行单个操作(逻辑上)。如有必要,您可以将类似的sprocs分组到一个单独的sprocs中,并让应用程序层仅通过这些函数进行操作。

+0

我同意持久层不应包含任何逻辑。在我们的特例中,DB不仅仅是对持久性负责,而且在未来也会包含逻辑。这是我无法改变的。 – tomkani 2012-07-25 10:32:44