文档章节

Model, Orm, Dao 和 Active Record 的异同点

mickelfeng
 mickelfeng
发布于 2017/07/14 14:52
字数 573
阅读 12
收藏 0

在 PHP 领域里,有哪些 ORM 比较好用?

来源于

这几个词描述不是同一个层次的东西,没什么可比性,更谈不上异同。 在下口拙简述不能,干脆帮你找了点资料,你勉为其难多看下。

举个例子汇总一下这些名词的使用:
小强要开发一个应用,选择用MVC,先blabla……然后开始考虑Model层,再blabla……具体到业务对象(business object)怎么持久,首选当然是关系型数据库,但直接写sql太费事,那就用ORM,考虑怎么个映射法,就按Active Record那样做吧,一表一个类,一行一对象。然后blabla……测试、修正、发布。一段时间后,需求变更,改!需要新增一个数据源(比如Memcached),卧槽,业务对象和数据源耦合住了,改个球,先重构,写几个DAO塞进去,业务对象的数据从DAO里获取,而DAO来决定数据源。

© 著作权归作者所有

mickelfeng

mickelfeng

粉丝 237
博文 2785
码字总数 604219
作品 0
成都
高级程序员
私信 提问
PHP中AR和DAO有什么区别?

我的理解不知道对不对:(参考http://www.song100e.com/ar-in-yii-dao/) Active Record(AR)是一个对象-关系映射(ORM)技术。每个AR 类代表一张数据表(或视图),数据表(或视图)的字段...

帖子列表
2013/04/07
2.1K
2
Make Rails Model Attribute as Array

需求:Post表中有tags字段,tags为一个数组 如果项目中不使用Object Relational Mapping(ORM对象关系映射)而是使用mongoid的ODM,那么一切就显的很简单了: 然而,如果使用Rails的Active Re...

已销号
2015/04/09
834
0
JFinal/jfinal-manual

JFinal is a WEB + ORM framework for agile development based on java language, its core design targets are rapid development, less code, simple to learn, powerful functionalities......

JFinal
2016/01/22
0
0
SQLAlchemy的封装--Elixir ORM

Elixir是基于python界有名的ORM库SQLAlchemy做的封装。而且是轻量级的封装,它提供了更简单的方式来创建Python类并直接映射到关系数据库表(即通常所说的Active Record设计模式),类似于Django中...

匿名
2012/09/11
1K
0
JFinal中实体类存取之循序渐进法

个人觉得,JFinal中最大的方便之处是对ORM的定义和封装,降低了ORM工具的学习难度,对Model进行了极轻度的封装,既方便使用,又不减少使用的灵活性。Db+ActivedRecord对习惯使用SQL的人来说,...

Jetmark
2013/05/12
523
4

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.3K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
39
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部