`
zhanghonglun
  • 浏览: 92175 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于ORM 的讨论

    博客分类:
  • OOAD
阅读更多
引用
引用
引用

类图是E-R 图的一个超集,所以我会选择先用面向对象的方式建立领域模型(分析类),然后两个分支并行的做数据库逻辑模型和领域模型的设计类。这样省去了数据库的概念模型。并且类图的表达能力要大于E-R 图,类图转换成表时也很多规则可以用的(跟概念模型转换为逻辑模型很像的),总之只要搞到满足特定的范式就OK 了。
这样也算ORM 了。

两个分支并行?是一边设计领域模型,一边设计数据库表吗?这样不是混淆了设计的方法,同时应用面向对象和面向关系,这样设计不是会在领域模型中混入了关系的模式,使领域模型不伦不类。导致领域模型失去了简单性和明确性,难以理解。

是一边设计领域模型(设计类),一边设计数据库表,而这两个模型的基础都是领域模型(分析类中的实体类),再将类映射到表。这样恰恰可以将数据库模式和领域模型解耦。在数据库这边可以根据相关范式做重构,领域模型那边完全按照面向对象的方式组织类之间的关系,分配职责等。

先设计数据库表,再通过反向工程做ORM,可以这样做,但不能这样想。什么意思?就是我们的思想应该是先有领域对象,然后才是将领域对象持久化,这个才是ORM.
为什么可以反过来做,那是因为没有人说不可以,所以就可以了。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    php中的orm

    博客可能会讨论以下主题: 1. ORM的基本概念和工作原理 2. 如何在PHP项目中安装和配置ORM框架 3. 创建模型并定义数据表映射 4. 使用ORM进行数据CRUD操作 5. 处理关联关系,如一对一、一对多、多对多 6. 查询构造器...

    Dos.ORM-master.zip_dos orm 表别名_dos.ORM 64_dos.orm_orm

    "dos.orm_orm" 这个标签明确了这是关于ORM(Object-Relational Mapping)技术的讨论。ORM的核心功能包括实体映射、查询构造、事务管理等。在 Dos.ORM 中,你可以通过定义实体类来映射数据库表,使用LINQ(Language ...

    Grove ORM Development Toolkit

    10. **文档与社区支持**:熟悉Grove ORM的官方文档,学习如何获取帮助,参与社区讨论,获取最新的开发资讯和最佳实践。 通过深入学习和实践这些知识点,开发者将能够充分利用Grove ORM Development Toolkit,提高...

    Orm compare

    标题“Orm compare”暗示了我们将讨论的是关于对象关系映射(ORM)框架的比较,可能是针对不同的ORM解决方案的性能、特性和使用场景的分析。在描述中提到了一个博客链接,但由于这里没有实际链接内容,我将根据ORM的...

    ORM客户关系体系统

    在本例中,我们讨论的是一个基于VS2005开发的三层架构ORM客户关系管理系统,它提供了学习源码,非常适合于开发者进行学习和实践。 首先,三层架构是软件设计中的一种常见模式,主要分为表现层(UI)、业务逻辑层...

    Go-GoGolang的ORM库

    标题"Go-GoGolang的ORM库"暗示我们将讨论的是Go语言中的一些ORM库。Go的ORM库为开发者提供了与关系数据库进行交互的抽象层,使得在Go中处理数据库变得更加简单。这些库通常包括模型定义、查询构建器、事务处理等功能...

    c#SqliteORM看名称你懂的

    标签“Sqlite”明确了讨论的核心是SQLite数据库。 根据压缩包内的文件名,我们可以推测这可能是一个SQLite ORM框架的测试项目和相关的源代码: 1. `SqliteORM.Tests\obj\Debug\ResolveAssemblyReference.cache`:...

    Doctrine2 ORM 官方文档

    - **常见问题解答 (FAQ)**:提供了一些关于Doctrine2 ORM的常见问题及其解决方案。 - **邮件列表**:通过加入Doctrine的邮件列表,你可以与其他用户交流经验,获得技术支持。 - **IRC聊天室**:在Freenode上的#...

    主流ORM框架技术应用

    在讨论ORM框架之前,我们先了解一下DTD(Document Type Definition)的基本概念及其如何用于验证XML文档。 ##### 2.1 DTD的概念和作用 DTD是一种用于定义XML文档结构的标准语言。通过DTD,我们可以定义XML文档中的...

    基于java 简易ORM 框架实现(二)

    作者可能会讨论如何集成Spring框架的事务管理功能,以确保数据的一致性和完整性。这包括对@Transactional注解的理解,以及如何配置事务管理器。 文件名“orm”可能代表了本项目中的核心ORM实现类或者相关包。在这个...

    orm工具策略和最佳实践源代码

    在文件"PatternsOfPersistence"中,我们可以期待看到关于持久化模式的深入讨论,这可能包括贫血模型和富模型的对比,以及事务管理、事务隔离级别的选择和事务回滚策略。此外,还可能涉及如何通过SessionFactory和...

    针对自己的框架 写的 orm自动工具

    在本主题中,我们讨论的是一个自定义的 ORM 工具,它专为作者自己的框架设计,旨在提高开发效率和代码的可维护性。 【描述】:虽然描述为空,但根据“博文链接:https://mojianpo.iteye.com/blog/1179698”可以推测...

    基于java 简易ORM 框架实现(一)

    在本篇讨论中,我们将深入探讨“基于Java的简易ORM框架实现”。ORM,全称Object-Relational Mapping,是将数据库中的数据与程序中的对象进行映射的技术,它简化了数据库操作,使得开发者可以像操作对象一样操作...

    ORM、DB面试题

    面试时,你也可能需要讨论索引的优缺点、何时创建索引、何时不创建,以及如何优化SQL查询以充分利用索引。 总之,理解数据库基础、SQL语法、ORM框架的原理和应用,以及如何有效利用索引,将有助于你在面试中表现...

    C#发现之旅:使用反射和特性构造自己的ORM框架实用.pdf

    标题中提到的"C#发现之旅:使用反射和特性构造自己的ORM框架实用",主要讨论的是如何利用C#语言中的反射和特性这两个高级特性来构建一个自定义的ORM框架。反射是.NET框架提供的一种强大的动态类型处理能力,它允许在...

    orm 多表查询实体解决办法

    在标题“orm 多表查询实体解决办法”中,我们讨论的是如何在ORM框架下进行涉及多个数据表的查询,并将查询结果映射到实体对象上。在实际的项目中,这通常是通过关系映射(例如一对多、多对一、多对多)或者JOIN操作...

    纯java写的简单ORM组件

    大二的时候为了做个后台方便写的ORM组件 没有Hibernate那么多功能,也没有Hibernate那么多麻烦事情. 压缩包里面文档和源码还有打包的jar都奉上 呵呵 有人用就用 随便改 欢迎和我讨论技术 qq:48579466 做个广告哈

    Hibernate ORM - 一对多双向组合关联关系

    这个标题表明我们要讨论的是Hibernate ORM框架中的一种特定的数据关系映射——一对多双向组合关联。在关系型数据库中,一对多关联意味着一个父实体可以与多个子实体相对应,而双向则表示这种关系是相互的,即父实体...

    spring-orm.src.zip net

    在本次讨论中,我们将深入探讨Spring-ORM的源码分析,以及其在.NET架构中的应用。 首先,Spring-ORM的核心特性在于它的灵活性和可扩展性。通过Spring的IoC(Inversion of Control)容器,我们可以轻松地管理数据库...

    论坛源码和ORM源码

    标题中的“论坛源码”指的是一个用于创建在线讨论平台的软件源代码,它通常包括用户注册、登录、发帖、回帖、管理等功能。这样的源码可以帮助开发者快速搭建自己的论坛网站,节省从零开始编写所有功能的时间。"ASP...

Global site tag (gtag.js) - Google Analytics