我在寻找适用于我的应用程序模型层的编程/设计模式,并且想知道哪种模型最适合您正在执行涉及跨多个表的连接的检索的情况。用于数据库表连接的最佳设计模式
例如,假设你有如下表/关系:客户 - > 1..1账户 - > 0..n的特点
其中一个功能可能是一个支票本,或者一些高端产品比如免费旅行保险。
然后我想要getCustomersForFeature()检索所有拥有免费旅行保险账户的客户。
使用ActiveRecord或数据访问对象似乎不合适,因为它们通常集中在每个表的一个类上;同样适用于Data Mapper。我意识到我可以将它分解成每个表的操作,例如getAccountsForFeature()和getCustomersForAccount(),但我想在一次打击中进行检索。
如果我们要“弯曲”每表一个类的模式并使用数据访问对象模式,比如说,getCustomersForFeature()方法应该在CustomerDAO还是FeatureDAO上?但是这对我来说并不合适,因为你会用其他表格的知识来污染你的DAO。
建议请。
我已经为此问题添加了社区Wiki答案,该答案基于这里的答案和其他阅读材料总结了我认为的可用方法。这并不影响其他答案,但是这是我所期待的面向模式的方法,包含了总体思想。我犹豫选择它作为“接受的答案”(我可以这样做我自己的答案?),直到它受到更多的审查。 – 2009-11-04 18:14:06