mysql 模型转换成表_从类模型转换到数据库表结构的思考

文章探讨了从UML类模型到数据库表结构转换的不实用性,指出类模型仅抽象数据资源,无法完全反映业务行为。数据库与类模型存在“阻抗”,故自动转换不现实,需人工调整。设计时应兼顾类模型和数据表,两者独立设计,ORM作为桥梁解决映射问题。强调ORM的核心是映射,而非提高效率或缓存功能。
摘要由CSDN通过智能技术生成

从类模型转换到数据库表结构 的思考 Aaron 从类模型转换到数据库表结构,或者说从UML类图转换为ER图,这个功能并不实用 。 为什麽呢? 如果你的类模型能够完整地转换为表结构(每一个表都能找到与之相关的类,如果类之间是多对多关系,那 么 会增加一个中间

从类模型转换到数据库表结构的思考

Aaron

从类模型转换到数据库表结构,或者说从UML类图转换为ER图,这个功能并不实用。

为什麽呢?

如果你的类模型能够完整地转换为表结构(每一个表都能找到与之相关的类,如果类之间是多对多关系,那么会增加一个中间表),那么说明你的类图是不完整的,它们仅仅抽象了领域模型的数据资源,并没有抽象出领域模型的业务行为,因为表结构只能描述静态资源,不能描述业务行为。也就是说,你的类模型是“失血模型”。

我们这里不讨论“失血模型”与“充血模型”的优缺点,有兴趣的朋友可自己去javaeye上搜索。

当然,你也可以认为,即使使用了充血模型,仍然可以从类模型映射为表结构。但从实际情况来看,数据表的设计与类模型的设计常常有着差异。毕竟从DBA的角度抽象对象(其实DBA只能抽象对象的数据),与程序员从OO的角度抽象对象(数据和业务行为)是不同的。

数据表的关系是二维的(关系性数据库),而类模型的关系是三维的(OO的特性),类模型的关系远比数据表的关系复杂,比如类之间有继承,而表结构是不可能继承的。这就是数据库与类模型的“阻抗”。

正因为数据库与类模型有阻抗,所以从类模型生成表结构是不现实的,它们不可能有标准的规则进行完美转换。除非是小项目,否则从类模型生成表结构࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值