为什么Doctrine2不会自动引用所有SQL标识符?

前端之家收集整理的这篇文章主要介绍了为什么Doctrine2不会自动引用所有SQL标识符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
学说手册说:

Doctrine does not quote identifiers automatically because this leads
to more problems,than it would solve.

引用一切究竟是什么问题?

解决方法

该引用来自 Basic Mapping部分的旧版本文档.最新文档不再包含此文本,但仍然如此.

最新文档的Limitations and Known Issues部分对此有所了解:

For compatibility reasons between all the supported vendors and edge case problems Doctrine 2 does NOT do automatic identifier quoting.

由于不同sql供应商使用不同的引用策略,以及ORM生成sql的方式,因此很难找到适用于所有情况的解决方案.而且它更难维护.这可能不是不可能的,但是Doctrine团队认为不值得花时间,并且(或许更重要的是)代码复杂性.

有关sql生成复杂程度的提示,请浏览git repository中的代码.

通常的最佳做法是仅对标识符使用字母数字字符(和下划线),并且不使用保留关键字.如果您遵循这些,您将不需要标识符引用.

如果您确实需要,因为您处理遗留数据库,Doctrine提供了两种解决方案:

>手动引用标识符,请参阅Basic Mapping部分.
>创建遵循前面提到的最佳实践的数据库视图.

PS:对于那些不知道的人:“标识符”不是指主键,而是指表,列,索引等的名称.

原文链接:https://www.f2er.com/mssql/78564.html

猜你在找的MsSQL相关文章