类似Sequelize这种ORM是否有一个总体的设计思路,怎么样去使用它们能达到比较好的效果?
用了关系型数据库好多年(Access/MS SQL Server/MySQL/Sqlite都有或多或少的接触和使用),一直都使用“一句SQL完成一件事”的想法来写。
昨天在写一个新的Node项目,使用了Sequelize这个ORM,在看它的更新数据方法的时候,发现必须得有被更新数据的引用才可以(即先find再update)更新。而且在数据的使用上也有一些和使用SQL不一样的地方,比如第二次获取某条数据可以用“第一次数据.reload()”来完成更新。
我的问题是:类似Sequelize这种ORM是否有一个总体的设计思路,怎么样去使用它们能达到比较好的效果?虽然按之前的思维,想完成一次数据操作就调用一系列API来完成也可以完成任务,但总觉得哪里不对。比如是不是取数据的时候就应该将引用保存在某个地方,然后后续所有操作都直接拿这个引用来操作?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
用 OOP 的方法论,访问数据。就是 ORM 的设计哲学。你不在是用 SQL 访问数据库。SQL是底层的,你只需要知道该对象(你数据库的记录)的对应方法是如何访问属性,如何获取,如何遍历,如何存储等等。知道几个方法,之后再也不用 SQL 了。
不一定哦,怎么优化要根据你的 orm 框架是怎么实现的,但是大部分(我觉得好的)orm 框架都是 -- lazy queryset,也就是说只有你 evalute queryset 的值时,sql 才真正被执行。
所以怎么优化看 orm 框架里什么操作能导致 evalute 你的 queryset。
举个例子:
另外如果框架有缓存,那么也不用担心 evalute 多次