数据
ORM · 对象关系映射
/ oh-arr-EMM /
ORM 是一种工具,它让你能把数据库里的行当作代码里的普通对象(object)来用,于是你读写数据时不必为每一件小事都手写 SQL。你调用 user.save() 或 User.find(1),ORM 便默默把它翻译成数据库真正想要的 SELECT 和 INSERT 语句。
可以把它想成一个双语中间人。你的代码说的是对象和方法这门话,数据库说的是表和 SQL 那门话;ORM 居中而坐,把一行行的列变成一个你能随手摆弄的整洁对象,等到要保存时,再把你的改动翻回 SQL。
它的好处是少写样板代码,写出的代码读起来像在讲你的业务问题,而不是数据库的水管活。代价是这份便利可能遮住真正发生的事——一个看着无害的循环,背地里也许偷偷发了几百条查询——所以即便 ORM 替你写 SQL,懂得底层的 SQL 仍然划算。
# With an ORM user = User.objects.get(id=1) # What it runs underneath # SELECT * FROM users WHERE id = 1;
一行对象代码,ORM 替你写好 SQL。
ORM 并不能取代你懂 SQL——遇到棘手或对性能要求高的查询,多数团队仍会落回手写 SQL。
又称
另见