考虑以下情况。我在资源规划项目中有3个表(使用mysql创建)
raw_materials(存储所有原材料的详细信息)
procurement_orders(存储有关发送给供应商的请求的所有详细信息的详细信息,以便向我们发送报价。此表引用raw_materials表。)
报价(包含供应商向我们发送的所有报价的详细信息。此表引用了procurement_orders表。)
我使用java为每个人创建了dbManagers,专门用于存储,检索和删除各个表中的数据。
我的问题是,如果我想要检索需要从其他表中获取数据的数据,那么最好的方法是什么。例如:我想要报价低于x的所有raw_materials。那么根据我有两种方式
我的问题是,在没有达到性能的情况下,以适当的方式设计它的最佳方法是什么。
答案 0 :(得分:3)
这是一个比可以快速处理的问题更大的问题,但是将java类与表对齐并不一定是一种好方法,正因为如你所说,有些事情自然涉及复杂关系中的多个表。
我建议先看看Martin Fowler的书Patterns of Enterprise Application Architecture。
本书的website还有一些关于模式的注释。
您的用法几乎与Table Data Gateway类似。遵循这种模式,在每个dbManager类中都有方法从关联表中检索数据但是将另一个表作为where子句的一部分进行处理是完全合理的。
您可能还想将Object-relational mapping视为由Hibernate实施。