ORM 分配数据以查看
Posted
技术标签:
【中文标题】ORM 分配数据以查看【英文标题】:ORM Assign data to view 【发布时间】:2011-07-18 14:29:26 【问题描述】:使用 Doctrine 作为我们的 ORM 处理 MVC 应用程序。目前我们正在考虑改进我们在应用程序中使用对象关系的方式,并提出了一个问题:
我们应该直接为视图分配一个理论实体还是只是一个数据数组?
每个人都有自己的优点和缺点。例如,设置实体使我们的前端开发人员能够查询我们的数据库,这不应该在视图中完成,并且可能会被不明智地使用。 另一方面,分配一个数据数组意味着我们必须首先查询他们可能想要的所有内容并作为数组获取。数组访问也不会给它们自动补全。
您认为哪一个是我们前进的最佳选择,且潜在的并发症最少?
感谢您的宝贵时间。
【问题讨论】:
【参考方案1】:我认为答案主要与您的应用运行所需的效率/速度有关。如果您所说的“前端开发人员”是指 html/CSS 开发人员,那么他们可能不会理解哪些类型的查询会在后台创建循环错误的内容(例如 $object->getRelatedObject()
)。可以使用返回数组数据的单个紧密查询执行的操作最终可能会生成 10-15 个查询,这些查询会混合完整的对象并显着降低应用程序的速度。
如果我不得不概括一下,我想说的是,如果您正在构建一个小型应用程序,而扩展不是主要问题,那并不重要,因为您不会注意到速度的影响和您的开发人员有更多的余地去做讨厌的事情。否则,我会选择数组数据。
希望对您有所帮助。
【讨论】:
是的,我所说的“前端开发人员”是指 HTML(带有一点 php)的家伙。我们主要担心的是他们可以做一些疯狂的事情,比如循环查询或从视图中保存数据或其他东西;性能是我们首先进行重构的原因。认为在我们开始任何事情之前收集意见会很好。谢谢。 只是为了跟进;我们继续将完整实体分配给视图,以便在前端实现更大的控制灵活性。我们计划通过代码审查避免任何愚蠢的迭代和节省以上是关于ORM 分配数据以查看的主要内容,如果未能解决你的问题,请参考以下文章
Bookshelfjs ORM 如何获取或查看其构建的 SQL 语句
OpenGL顶点缓冲区对象,我可以访问顶点数据以用于其他用途,例如碰撞检测吗?