从多个表中检索数据时java中的最佳设计原则

考虑以下情况。我在资源规划项目中有3个表(使用mysql创建) raw_materials(存储所有原材料的详细信息) procurement_orders(存储有关发送给供应商的请求的所有详细信息的详细信息,以便向我们发送报价。此表引用raw_materials表。) 报价(包含供应商发给我们的所有报价的详细信息。此表引用procurement_orders表)。 我使用java为每个人创建了dbManagers,专门用于存储,检索和删除各个表中的数据。 我的问题是,如果我想要检索必须需要来自其他表的数据的数据,那么最好的方法是什么。例如:我想要报价低于x的所有raw_materials。那么据我说有两种方法 我在dbManager for rawMaterials中编写它。这种技术的缺陷是它试图直接从其域中访问数据。 在raw_Materials的dbManager中创建其他dbManagers的实例。这里的缺陷是迭代会很大。如果有300个原材料,我将不得不调用procurement_request的dbManager方法300次。如果它返回多个值,我们将再次调用dbMnager的quatations很多没有。时间(其中许多将是不必要的)影响性能。 我的问题是,在没有达到性能的情况下,以适当的方式设计它的最佳方法是什么。     
已邀请:
这是一个比可以快速处理的问题更大的问题,但是将java类与表对齐并不一定是一种好的方法,正因为如你所说,有些事情自然涉及复杂关系中的多个表。 我建议首先看一下Martin Fowler的书“企业应用程序架构模式”。 。 在他的网站上也有关于这本书的模式的一些注释。 您的用法几乎与表数据网关类似。遵循这种模式,在每个dbManager类中都有方法从关联表中检索数据但是将另一个表作为where子句的一部分。 您可能还需要考虑Hibernate实现的对象关系映射。     

要回复问题请先登录注册