Django ORM 模型

ORM介绍

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 库存在的互不匹配的现象的技术。

简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系 数据库中。

ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据 模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开 发人员的工作量,不需要面对因数据库变更而导致的无效劳动。 ORM是"对象-关系-映射"的简称。

1 ORM由来

让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。 几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向 对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。 按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、 读取、修改、删除相关数据,而这些代码通常都是极其相似或者重复的。

2 ORM的优势

ORM解决的主要问题是对象和关系的映射。它通常将一个类和一张表一一对应,类的每个实例对应表 中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需操作对象就能对数据库操作数据。 让软件开发人员专注于业务逻辑的处理,提高了开发效率。

3 ORM的劣势

ORM的缺点是会在一定程度上牺牲程序的执行效率。 ORM的操作是有限的,也就是ORM定义好的操作是可以完成的,一些复杂的查询操作是完成不了。 ORM用多了SQL语句就不会写了,关系数据库相关技能退化...

4 ORM总结

ORM只是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。 但我们不能指望某个工具能一劳永逸地解决所有问题,一些特殊问题还是需要特殊处理的。 但是在整个软件开发过程中需要特殊处理的情况应该都是很少的,否则所谓的工具也就失去了它存在 的意义。

相关推荐
可触的未来,发芽的智生14 小时前
新奇特:神经网络的集团作战思维,权重共享层的智慧
人工智能·python·神经网络·算法·架构
渡我白衣15 小时前
C++ 异常处理全解析:从语法到设计哲学
开发语言·c++·面试
文火冰糖的硅基工坊15 小时前
[创业之路-653]:社会产品与服务的分类
大数据·数据库·人工智能
jerryinwuhan15 小时前
Python数据挖掘之基础分类模型_支持向量机(SVM)
python·支持向量机·数据挖掘
StarPrayers.15 小时前
基于PyTorch的CIFAR10加载与TensorBoard可视化实践
人工智能·pytorch·python·深度学习·机器学习
深蓝电商API15 小时前
实战破解前端渲染:当 Requests 无法获取数据时(Selenium/Playwright 入门)
前端·python·selenium·playwright
悦悦子a啊15 小时前
[Java]PTA: jmu-Java-02基本语法-08-ArrayList入门
java·开发语言·算法
2351615 小时前
【MySQL】数据库事务深度解析:从四大特性到隔离级别的实现逻辑
java·数据库·后端·mysql·java-ee
脚踏实地的大梦想家15 小时前
【LangChain】P7 对话记忆完全指南:从原理到实战(下)
数据库·langchain
conkl15 小时前
Flask 与 MySQL 数据库集成:完整的 RESTful API 实现指南
数据库·mysql·flask