回答

收藏

使用Doctrine与SQL相比,使用DQL有什么好处?

技术问答 技术问答 263 人阅读 | 0 人回复 | 2023-09-14

当在使用Doctrine当类别需要定制查询时,有人可以为我提供使用/学习的明确理由(支持事实)DQL与SQL吗?2 R: X$ W8 F7 K+ ^
我发现如果不能用,ORM实现某些目标的内置关系功能通常是扩展的Doctrine或DoctrineTable编写类中的自定义方法。在这种方法中,直接使用SQL编写所需代码(使用适当准备的句子/注入保护等。PDO)。DQL它似乎是学习/调试/维护的另一种语言,但在大多数常见情况下,它似乎没有提供足够令人信服的理由使用。DQL似乎没有比较SQL复杂得多,可以保证使用-
3 m( n) m6 x0 G8 e& \其实我怀疑你能不能不扎实。SQL在理解的情况下有效使用DQL。与PHP在最常见的数据库中,大多数核心数据库一起使用SQL语法端口都挺好的。) b! J, m$ e% c/ ^
我错过/忽略了什么?我相信这是有原因的,但我想听听那些打算大量使用它的人的消息,并尝试使用它Plain-ole SQL什么是收获?
6 q* v& S) H9 R* d我不是在寻找支持ORM传统上只有参数LAMP设置(使用mysql,postgres等)需要执行核心根据关系获取类型的需求DQL。
2 l. T( v, a: _  x                                                               
/ E: N: |) W- A' L$ _    解决方案:                                                               
4 B8 o/ N4 C8 _' T                                                                说实话,我用Doctrine1.2学习了SQL2 \% ?1 F2 E7 b. M" u) y
:)我甚至不知道外键和级联操作,比如group_concat复杂的功能和许多其他的东西。索引搜索也很容易打开盒子。
! _) B, v( ~6 f& iDQL编写和理解代码更容易。例如,此查询:
. W. Y/ X% B. X+ q# |3 {0 x$query = ..... // some query for Categories   ->leftJoin("c.Products p")它将在类别和产品之间左连接,您不需要p.category_id = c.id上写。3 o& Q- ?. S1 ?( c4 r1 s
而且,如果你将来把关系从一个2变成很多2,那么这个查询就可以在没有任何变化的情况下工作。教义将照顾它。如果你想使用它SQL在此操作中,必须更改所有查询,包括中间多2次表。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则