首页 > 代码库 > 任务一、完成学员报名的DB设计并读写数据库

任务一、完成学员报名的DB设计并读写数据库

学员线下报名格式为:

姓名:

qq:

修真类型:

预计入学时间:

毕业院校:

线上学号:

日报链接:

立愿:

推荐人:

分析业务模型需要两个方面:基础业务对象、基础业务。搜索资料的时候,觉得类图(class diagram)是一种分析方法,它是OOA(面向对象分析)和OOD(面向对象设计)的重要思想工具,用以业务结构建模:

eg:某公司原始需求文档

  “本项目是在一期的基础上增加对电缆、通讯工程的管理和施工详细数据的记录和统计,使整个系统更好的管理各工程项目从中标开始到竣工验收的全部过程和资料和分析施工过程的数据。 本系统将一条或一个标段的架空电力线路工程定为一个单位工程,即系统中的一个工程项目;每个单位工程分为若干个分部工程;每个分部工程分为若干个分项工程;每个分项工程中又分为若干相同单元工程。”

需回答三个问题(附未学习之前的回答):

  1、用一句话描述该系统的作用? A:帮助企业管理者把握多个施工项目的进度详情。

  2、这段话有什么业务概念?具体分别是什么意思? A:电缆、通讯工程;施工详细数据;架空电力线路工程;单位工程、分部工程、分项工程。

  3、这些业务概念之间的关系?A:每个电缆、通讯工程下有详细施工数据(按时间排列);架空电力线路工程与单位工程等价,其下分为若干分部工程、再分为若干分项工程。

类图的作用是根据系统的目标,从合适角度对事物进行归纳。类图下可有多个类,一个类分为三块:类名、属性(可有多个)、操作(可有多个)。

用类图获取需求(?)需要的步骤:

  1、识别出类。

  2、识别类的主属性。

  3、描述类之间的关系。

  4、对各类进行分析、抽象、整理。

  eg:当做一个培训管理系统时,如何用类图识别一个教室中的类?

    A:类名:老师、学生;

        主属性:老师--》知识水平、讲课水平;学生--》知识水平、接受能力;(分析模型时默认为public属性)

         类之间的关系:Association(关联关系)分为 一对一、一对多、一对x到y、角色关系(比如上司和下属)、导航关系(请假单至请假者)(如果请假单能导航至请假者和审批者呢?该采取什么关系)、包含关系(强包含为composition--实心菱形、弱包含为aggregation空心菱形,菱形画在父亲框那一侧。比如部门和员工中的部门。)此处可用角色关系来描述。

  附关系表格如下:

技术分享

 

类的递归和三角关系:

  eg:Windows操作系统中有文件夹与文件,请你用类图表达出文件夹与文件的关系。

  A:答案的关键是不止有文件夹与文件的弱包含关系,还有文件夹与文件夹之间的自包含关系(非严谨说法,该称作递归)

  eg:列出公司与雇员的至少三个关键属性。

  A:自己开始的回答是公司(规模、行业、创立时间、发展前景),员工(能力、工资、年龄、入职时间),这是下意识以求职大学生的角度考虑的公司属性…而从开发角度,需要更关注标签化的属性(包括约束关系)、答案中包括但不止于(姓名、年龄、联络地址、员工.学历、公司.注册资金、)。需思考两个问题:1、薪金、职位和合同期是员工的属性吗?2、公司和雇员两者关系在法律上是如何确立的?

       由此引出三角关系(公司-员工-合同),如图下所示:

技术分享

 

  1、当两个类有关系、先拉一条直线。

  2、如果表达不清楚关系,思考是不是缺了关联类?

  3、列出两个类的关键属性,想想这些属性是不是由类本身独自决定的?比如薪资是员工和公司共同达成的共识。

  4、如果不能,这些属性属于哪个类,是不是可以表征上两个类的关联类?

 

 

综合练习:

某学校打算做一套考试管理系统,当前情况如下:

1)讲师会讲很多门课,大部分的课程需要安排一次考试,有些就不需要。

2)考试题目由讲师出。

3)学生需要参加很多考试,每门考试都有成绩。

 

  首先!!!!这是一套考试管理系统,通过对考试事件的记录来实现对考试的管理,所以以考试为一个核心类,“考试”属于一个动态的事项而不是人、物或者概念,但是仍然需要识别为类。

  其次,列出与之相关的类:教师、学生是最明显的,其次是课程和试卷,最后是成绩(一开始会觉得成绩是一项属性,课程也有类似疑惑,但仔细考虑会发现成绩和课程是模糊地带的属性,于是将其归为关联类)。

  类图如图所示:

技术分享

  需要注意的是,数量下标容易遗漏。

 

至此,学习结束,解答原问题:参考修真院线下报名贴(学习资料-线下报名-北京报名)中报名的格式,整理出业务模型,确定需要几个对象,每个对象的属性是什么,对象和对象之间的关系是一对一,还是一对多。

  

学员线下报名格式为:

姓名:

qq:

修真类型:

预计入学时间:

毕业院校:

线上学号:

日报链接:

立愿:

推荐人:

  对象是类的实例,我们直接采用类图分析。读题可得,实质为设计报名管理系统,其中报名是核心类;与之相关的直接类有,审批者类、报名者类、课程类、录取情况类和报名表类。

  报名属性(报名时间、报名地点);审批者类属性(姓名、年龄、职位);报名者(姓名、毕业院校、个人日报主页、线上学号、预计入学时间、qq、立愿);课程类(课程时间、上课地点);录取情况类(审批时间、审批结果);报名表类(感觉多余了,但是先保留着)。其中推荐人可以是审批者、也可以是往届报名者,所以不另立一类。

  类图如下:

技术分享

 

接下来是安装并配置Mysql 5.5,在linux上装真是心累…待我研究一下再战  

首先要彻底删除ubuntu自带的mysql各种文件,

 


sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common //这个很重要
上面的其实有一些是多余的。

再删除残留文件,

 

dpkg -l |grep ^rc|awk ‘{print $2}‘ |sudo xargs dpkg -P

之前安装系统的经验告诉我不能按乱百度来的解答来安装文件。。。。。-皿- 所以我找到了mysql官方安装文档。

  顺便学了一个apt-cache search的命令,暂时不提。可参考网页http://rsljdkt.iteye.com/blog/1142463

  弄了几个小时,没装成功…似乎是因为下载了ubuntu的DEB文件,但用的是linux generic的安装文档,所以解压出来不存在相应的文件目录…下个linux generic版的mysql再试试。

 

Save

任务一、完成学员报名的DB设计并读写数据库