好的,让我们从头开始吧。例如,我正在开发一些大项目。对于我们所有人来说,这些项目包含许多共同逻辑并不是秘密。例如,假设某些在线商店订单必须包含一些商品,并且所有商品的价格总和必须恰好为1000.因此,我在MVC3 Web应用程序中实现此逻辑并在订单上进行验证。如果有问题,它会告诉用户有关问题并要求他重新发布表格。
但项目还有另一个重要的部分。这是DB。在这里,我还可以将此验证逻辑包装在一些存储过程中,并仅通过此proc添加订单,以确保没有不一致。 (或者我应该在桌子上使用支票来确定吗?)
这是我跑的卡住了。有必要在两个地方发布逻辑以获得数据完整性。当然,我可能只在DB端存储验证逻辑。但我怀疑这会降低应用程序的性能。
我相信更有经验的人会为这个问题提供完整而优雅的解决方案。
那么,我怎样才能在一个地方实现逻辑?
答案 0 :(得分:2)
简单回答,不是每个人都喜欢
编辑,关于后一部分
并非所有逻辑都需要在数据库中实现:只有几个客户端代码库共有的逻辑。或者,您可以通过单独的层/服务来处理这些常见请求。
请注意,某些业务逻辑基于聚合或跨表或全表检查,这些检查最好在数据库中完成