我最近成为编写我们“旗舰”产品的开发团队的一员。它主要是在 N 层系统中实现的读取密集型 Web 应用程序(asp.net(c#) 和 oracle)。数据库中的大部分写入都是通过外部服务完成的(而不是通过 webapp)。他们没有在数据库中安排正常的批处理作业以进行数据聚合,而是将所有内容向上推送到业务层(有时会创建一亿个对象)。虽然这确实将所有“业务逻辑”保留在同一个地方,但它也比在数据库中运行等效查询要长约 200 倍。这对我来说似乎是一个可怕的想法。我在这里错了吗,这是标准的好东西吗?有没有人有任何真实的案例研究可以让我的同事(或者我自己,如果我错了)?
我不是在争论 n 层是好是坏,但它是否适合数据聚合处理等?
最佳答案
您对处理时间(以及资源,如内存)是正确的。
所以你需要达到一个正确的平衡。这不能从外面传给你,
您必须仔细权衡项目特定背景下的优势 .
例如,频率 这一切的发生都很重要。如果这个过程每分钟发生一次,那么高成本显然是可以接受的,但如果它每年都发生,则可能不会......
也许正确的平衡需要两者兼而有之。例如,对于良好的投资返回率:
是什么使查询中的需求成为一个很好的候选者:
To make your code more explicit (and reduce duplication between queries), I suggest that your code adopts a compile-time structure that makes it clear. Create explicit constants or functions that embody each business rule that you will put in a query, and use that to build (at runtime or compile-time) your queries.
关于architecture - n 层系统是否为大型数据集处理生成 "sense"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528448/