JiveJdon Community Forums
在线164人   首页   主题表   培训咨询   标签   查搜   注册    登陆 RSS
首页 » 论坛 » 领域建模设计经验谈
???en_US.forumThreadPrev.name??? 上一主题
RSS google yahoo 365Key网摘 CSDN网摘 添加到百度搜藏 POCO网摘 新浪ViVi QQ网摘
???en_US.forumThreadNext.name??? 下一主题
Go 共有 8 回复(1页) 阅读142次
 发表新帖子   回复该主题贴
jesse



发表文章:
注册时间: 2008年05月12日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月24日 19:17 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
标签          
项目需求分析如下:
学生
---选课
---查看课程表
---上课
---查看考试表
---考试
---查成绩
---评教
---管理个人信息


教师
---授课
---输成绩
---管理个人信息
---查看所教学生的信息


教务处
---开课(根据各院上报的所开课程)
---确定学生的课程(筛选,专业计划)
---管理学生/教师信息

参考http://www.jdon.com/mda/mda.html的分析思路,建立如下模型:

Student
------------
id: int
name: String
pwd: String
......(部分省略)
courseTable: Collection(课程表,表示Student与Course的关系是1:n)
examTable: Collection(考试表)
scoreTable: Collection(成绩表)





Course
--------------------
id: int
name: String
classTimes: Collection(上课时间,表示Course与ClassTime的关系是1:n)
....



AbstractClassTime
---------------
startWeek: int(起始周)
endWeek: int(结束周)


ConcreteClassTime
-------------------
frequency: int (0:每周/1:单周/2:双周/....)
startNode: int(开始节)
endNode: int(结束节)


Exam
-----------------
course:Course
time: Date
place: String
type:String
....



Score
-----------------
course:Course
mark: int
credit: double
.......



不知以上设计怎么样?如果有错请赐教......

假如没错,问题来了,MDA带给我的困惑是:假如我还是要用到关系数据库做为持久化策略(目前还很难摆脱它),那么怎么去设计这个数据库schema呢?无从下手了......













[该贴被jesse于2008-05-24 19:28修改过]
freebox



发表文章: 369
注册时间: 2008年03月01日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月24日 20:18 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
既然不是改造遗留系统,从头开始是不需要设计DB的,当你建立了对象关系之后,完全可以使用hibernate等等的ddl auto来生成db,换句话说,当你设计一个新系统的时候,是不需要db概念的,你只需要OO关系。
jesse



发表文章: 4
注册时间: 2008年05月12日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
回复:re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月25日 11:39 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
我倒是想看看,生成的Schema是什么样的?你说说看?有这么简单吗?
对象和关系数据库天然阻抗 就通过一个Hibernate OR MAPPING就解决了?
freebox



发表文章: 369
注册时间: 2008年03月01日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月25日 15:11 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
你将Entity建立好,在JPA配置里定义<property name="hibernate.hbm2ddl.auto" value="update" />,自己看看如何生成db,不能连试都没试过就说不行或行,我试过之后认为自己定义的OO关系可以映射到db。
xmuzyu



发表文章:
注册时间: 2007年03月26日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月26日 00:44 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
如果是从新开发新系统确实不要先考虑数据库表,因为通过正向工程,可以直接生成数据库schema,而你要是改造遗留系统,那么也可以通过反向工程又数据库schema生成类。
banq



发表文章: 11282
注册时间: 2002年08月03日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言 70人关注
回复:re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月26日 12:04 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
是的,以上回答很正确,设计阶段根本不要考虑数据库和schema,这些属于编程完成后部署阶段的事情,传统工程方法将数据库schema提前到设计,是不符合OO的,是不能建立一个灵活健壮的软件系统的,也是不符合软件发展方向的,是倒退,是delphi过去时代。

>我试过之后认为自己定义的OO关系可以映射到db。
通过Hibernate都可以实现,可以参考Jdon框架开发的struts+jdon+Hibernate,都是自动生成的。

jesse



发表文章: 4
注册时间: 2008年05月12日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月26日 16:29 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
假定持久层用的就是hibernate,要用什么工具自动生成?hbm2java,hbm2ddl都不能用了(说来好像有点讽刺,好像很多人都根据数据库自动生成映射文件/java源文件的,想想在MyEclipse中是如何用hibernate的!)
楼上说的ddl auto能给我个链接下载和教程?

假如持久层不用hibernate了,那又怎么办呢?
freebox



发表文章: 369
注册时间: 2008年03月01日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月26日 17:29 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
由IDE生成类明显就是为旧系统改造准备的功能,新系统是完全不需要的。不能因为IDE提供了这个功能,就认为它是正确的和必须使用的。难道忘了GUI代码的乱七八糟是怎么来的?不就是因为IDE太方便了么?
因为我用元数据映射,已经很久没用hbm了,下面给出JPA和hibernate里的配置:
JPA里通过定义persistence.xml文件中的:
<property name="hibernate.hbm2ddl.auto" value="update" />
Hibernate里通过配置hibernate.cfg.xml:
<property name="hibernate.hbm2ddl.auto">update</property>
以上配置后如果发现被定义了@Entity的类将会被此配置生成db。
即使不用Hibernate,其它符合JPA规范的都能够有相应的办法生成db。
不过目前这个功能不算很强,有些外键定义无法准确生成,但这并不影响使用这些对象和关系。关系是交给Hibernate维护的,不能交给DB管理。完全可以删除那些外键约束。
我感觉您是在关联关系的映射上遇到问题了,其实这很容易理解,n:1在db级别不正是被FK维护的需要连接抓取的SQL么?
yewentao



发表文章:
注册时间: 2008年05月27日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
re:学籍管理系统的MDA的困惑(banq大哥必看,关于我们学校ecust的) 2008年05月27日 18:56 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
`````
标签          
共有 8 回复(1页) Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
正在读取,请等待...
查询本论坛内 回复超过的热门帖子
标题
 
粗体: [b]文本[/b] 斜体: [i]文本[/i] 下划线 [u]文本[/u] 插入网上的图片 [img]http://wwww.xxxx.com/img.ext[/img] 插入代码 [code]程序代码[/code]  插入url链接 [url]http://url[/url] / [url=http://url]URL加下滑线[/url] 上传图片 word文档 Txt等附件
内容
  提交时自动拷贝以上内容到剪贴板 Ctrl+V可取出;提问题前先查询标签列表

使用帮助 手机m.jdon.com RSS add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的软件架构社区 推荐FireFox或Chrome快速浏览本站
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-10 jdon.com

anti spam