Ecto与Phoenix:数据持久化与Web请求处理
1. Ecto数据持久化与上下文模块
在开发过程中,Ecto是一个用于数据映射和数据库查询的强大库。它与Ruby的ActiveRecord库设计方法不同,但很多概念和术语相似,使用起来会有熟悉的感觉。
1.1 Ecto的核心概念
- Ecto Schemas :用于定义应用程序的数据结构,Ecto借助它将数据库数据映射到Elixir结构体中。可以在Ecto Schema中定义关联关系,如一对一、一对多和多对多关联,这些关联在不同数据库库中是标准化的,与ActiveRecord的关联类似。
- Migrations :用于创建数据库表、字段和索引。Ecto有强大的数据迁移格式,类似于ActiveRecord迁移。但在进行迁移时要小心,因为改变数据库结构可能会给应用程序或数据库性能带来问题,不过这些风险在任何迁移库中都存在,可以遵循最佳实践来降低风险。
- Ecto Changesets :用于插入或更新数据,与ActiveRecord的处理方式有很大不同,充分体现了Elixir的函数式特性。构建Changesets需要多个函数调用,先从源数据开始,将输入参数转换为正确格式,然后验证数据是否有效。验证通过后,使用
Repo.insert或Repo.update将数据持久化到数据库。 - Ecto Query :提供完整的查询DSL,感觉有点像S
超级会员免费看
订阅专栏 解锁全文
10

被折叠的 条评论
为什么被折叠?



