Php 数据映射器设计模式和网关-新手问题
如果我错了,请纠正我: 如果我们使用Dao/Vo模式或TDG模式,我们将有一个很好的代码组织,因为每个(或至少很多)表都有一个相关的类 这种方法的问题在于,或数据在给定表中没有关闭。我们有一些特定于领域的数据,比如Php 数据映射器设计模式和网关-新手问题,php,design-patterns,datamapper,gateways,Php,Design Patterns,Datamapper,Gateways,如果我错了,请纠正我: 如果我们使用Dao/Vo模式或TDG模式,我们将有一个很好的代码组织,因为每个(或至少很多)表都有一个相关的类 这种方法的问题在于,或数据在给定表中没有关闭。我们有一些特定于领域的数据,比如findDogBreed()或findBookBestSellerAuthor()
findDogBreed()代码>或findBookBestSellerAuthor()上面的模式似乎不能很好地处理这个问题
解决方法之一是使用映射器。映射器将包含一组与一个表相关的方法和属性,但它们不会仅与该表关闭,也不会与特定的SQL模式相关
问题是,如果我们开始抽象所有这些东西,我们将无法访问SQL语法。如果我们需要我们的数据库管理员来处理它呢?在更复杂的查询中,使用映射器可能会导致非常混乱的抽象“东西”
这是正确的吗?如果是这样的话,我想知道为了在这里找到一个中间术语,我们有什么路径。当您抽象功能时,即使是在多个抽象级别上,您也不必失去手动编写SQL的选项
例如,看看Doctrine,它是受Hibernate启发的PHP ORM。它允许您使用DQL(条令查询语言)编写查询,将其转换为SQL并自动映射实体,但您也可以编写(通常用于性能优化),但您需要自己定义结果映射。在抽象功能时,您不必失去手动编写SQL的选项,甚至在多个抽象层次上
例如,看看Doctrine,它是受Hibernate启发的PHP ORM。它允许您使用DQL(条令查询语言)编写查询,将其转换为SQL并自动映射实体,但您也可以编写(通常用于性能优化),但您需要自己定义结果映射。我需要知道,至少,我没有得到答案的原因是:a)这个问题毫无意义。b) 没有像中期选举这样的想法。:)请请给出当前体系结构的示例。特别是与方法findDogBreed()产生的问题有关;或findBookBestSellerAuthor();。我需要知道,至少如果我没有得到答案是因为:a)这个问题没有意义。b) 没有像中期选举这样的想法。:)请请给出当前体系结构的示例。特别是与方法findDogBreed()产生的问题有关;或findBookBestSellerAuthor();。