简介
什么是 ORM,为什么它们在处理数据库时如此常见?如果您刚开始使用由关系型数据库支持的应用程序编程,您在研究过程中可能遇到过 ORM 这个术语。本指南将简要介绍 ORM 是什么以及它们如何提供帮助。
Prisma 是一个 ORM,专注于使 Node.js 和 TypeScript 应用程序轻松地与数据库协作。您可以在我们的“为什么选择 Prisma?”页面上了解 Prisma 提供的更多信息。
什么是 ORM?
ORM,即对象关系映射器,是一种旨在在数据库使用的数据表示与面向对象编程中使用的数据表示之间进行转换的软件。基本上,这两种处理数据的方式并非天生匹配,因此 ORM 试图弥合两个系统数据设计之间的鸿沟。
从开发人员的角度来看,ORM 允许您使用与处理任何内部数据相同的面向对象结构和机制来处理数据库支持的数据。ORM 的承诺是,您无需依赖特殊技术或必然学习像 SQL 这样的新查询语言即可高效处理数据。
通常,ORM 充当应用程序和数据库之间的抽象层。它们试图通过消除对样板代码的需求和避免使用可能破坏您所选语言预期惯用语和人体工程学的笨拙技术来提高开发人员的生产力。
我需要 ORM 吗?
虽然 ORM 可能有所帮助,但重要的是将其视为一种工具。它们并非适用于所有场景,并且可能存在您需要考虑的权衡。
通常,如果您使用语言的许多面向对象特性来管理大量状态,那么 ORM 可能是一个很好的选择。例如,管理封装在具有复杂继承关系的对象中的状态所带来的影响可能难以手动处理。它们还可以帮助您的项目更容易地启动,并通过模式迁移等功能管理数据结构的变化。
虽然 ORM 通常很有用,但它们并非完美无缺。有时,ORM 引入的抽象级别会使调试变得困难。也有些时候,ORM 用于在数据库和应用程序之间进行转换的表示可能不完全准确,或者可能会泄露内部实现的细节。这些对于某些用例来说可能是问题。
了解您项目的需求以及您在构建软件时希望如何分配资源非常重要。ORM 是一种可以帮助您更轻松地构建数据库支持应用程序的工具,但您必须自行决定它是否能为您的项目增加价值。
结论
在本指南中,我们简要了解了 ORM 是什么以及它们如何有用。通常,尽早问自己 ORM 是否会帮助您的项目是个好主意。评估权衡是一个很好的练习,可以帮助您了解希望如何集中精力。
要了解 ORM 与其他数据库交互方式的比较,请查看我们对SQL、查询构建器和 ORM 的比较。
Prisma 是一个 ORM,专注于使 Node.js 和 TypeScript 应用程序轻松地与数据库协作。您可以在我们的“为什么选择 Prisma?”页面上了解 Prisma 提供的更多信息。