ssh 实体关系分析确立(ER图-实体关系图)
来源:互联网 发布:各种门事件网络盘点 编辑:程序博客网 时间:2024/05/16 17:19
比较简单的方式就是根据模仿同类产品,根据同类产品的进行模仿,表单就是一个起码要加的字段,然后根据项目需要额外增加字段。
注意:实体类之间的引用关系还需要考虑性能的影响。如:单向或是双向。
表设计:
设计好后:
写实体类
建立实体类到数据库的关联关系
概述
5.实体关系分析
1.类结构:带箭头是单线关联,不带箭头是双向关联
----------------------------------------
class User (1)<------(*) class Survey (1)-------(*) class Page (1)-------(*) class Question
{ { { {
Integer id ; Integer id ; Integer id ; Integer id ;
... ... ... ...
User user ; Survey survey ; Page page ;
Set<Page> pages ; Set<Question> questions ;
} } } }
2.表结构
------------------------------------------------------------------
[users]
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| email | varchar(50) | YES | | NULL | |
| password | varchar(50) | YES | | NULL | |
| nickname | varchar(50) | YES | | NULL | |
| regdate | datetime | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
[surveys]
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(200) | YES | | NULL | |
| pretext | varchar(50) | YES | | NULL | |
| nexttext | varchar(50) | YES | | NULL | |
| exittext | varchar(50) | YES | | NULL | |
| donetext | varchar(50) | YES | | NULL | |
| createtime | datetime | YES | | NULL | |
| userid | int(11) | YES | MUL | NULL | |
+---------------+--------------+------+-----+---------+----------------+
[pages]
+-------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(200) | YES | | NULL | |
| description | varchar(200) | YES | | NULL | |
| surveyid | int(11) | YES | MUL | NULL | |
+-------------+---------------+------+-----+---------+----------------+
[questions]
+---------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| questiontype | int(11) | YES | | NULL | |
| title | varchar(200) | YES | | NULL | |
| options | varchar(200) | YES | | NULL | |
| other | bit(1) | YES | | NULL | |
| otherstyle | int(11) | YES | | NULL | |
| otherselectoptions | varchar(200) | YES | | NULL | |
| matrixrowtitles | varchar(200) | YES | | NULL | |
| matrixcoltitles | varchar(200) | YES | | NULL | |
| matrixselectoptions | varchar(200) | YES | | NULL | |
| pageid | int(11) | YES | MUL | NULL | |
+---------------------+--------------+------+-----+---------+----------------+
3.映射文件
------------------------------------------
[User.hbm.xml]
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.atguigu.surveypark.model.User" table="users">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="email" column="email" type="string" length="50" />
<property name="password" column="password" type="string" length="50" />
<property name="nickName" column="nickname" type="string" length="50" />
<property name="regDate" column="regdate" type="timestamp" update="false"/>
</class>
</hibernate-mapping>
[Survey.hbm.xml]
<hibernate-mapping package="com.atguigu.surveypark.model">
<class name="Survey" table="surveys">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="title" column="title" type="string" length="200" />
<property name="preText" column="pretext" type="string" length="50" />
<property name="nextText" column="nexttext" type="string" length="50" />
<property name="doneText" column="donetext" type="string" length="50" />
<property name="exitText" column="exittext" type="string" length="50" />
<property name="createTime" column="createtime" type="string" length="200" />
<!-- 映射从Survey到User之间多对一关联关系 -->
<many-to-one name="user" class="User" column="userid" />
<!-- 映射从Survey到Page之间一对多关联关系 -->
<set name="pages" inverse="true">
<key column="surveyid" />
<one-to-many class="Page"/>
</set>
</class>
</hibernate-mapping>
[Page.hbm.xml]
<hibernate-mapping package="com.atguigu.surveypark.model">
<class name="Page" table="pages">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="title" column="title" type="string" length="100" />
<property name="description" column="description" type="string" length="200" />
<!-- 映射从Page到Survey之间多对一关联关系 -->
<many-to-one name="survey" class="Survey" column="surveyid" />
<!-- 映射从Page到Question之间一对多关联关系 -->
<set name="questions" inverse="true">
<key column="pageid" />
<one-to-many class="Question"/>
</set>
</class>
</hibernate-mapping>
[Question.hbm.xml]
<hibernate-mapping package="com.atguigu.surveypark.model">
<class name="Question" table="questions">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="questionType" column="questiontype" type="integer" />
<property name="title" column="title" type="string" length="100" />
<property name="options" column="options" type="string" length="200" />
<property name="other" column="other" type="boolean"/>
<property name="otherStyle" column="otherstyle" type="integer" />
<property name="otherSelectOptions" column="otherselectoptions" type="string" length="200" />
<property name="matrixRowTitles" column="maxtrixrowtitles" type="string" length="200" />
<property name="matrixColTitles" column="matrixcoltitles" type="string" length="200" />
<property name="matrixSelectOptions" column="matrixselectoptions" type="string" length="200" />
<!-- 映射从Question到Page之间多对一关联关系 -->
<many-to-one name="page" class="Page" column="pageid" />
</class>
</hibernate-mapping>
详细代码如下:
Page.java
package com.atguigu.surveypark.model;import java.util.HashSet;import java.util.Set;/** * 页面类 */public class Page {private Integer id;private String title = "未命名";private String description;//简历从Page到Survey之间多对一关联关系private Survey survey;//简历从Page到Question之间一对多关联关系private Set<Question> questions = new HashSet<>();public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public Survey getSurvey() {return survey;}public void setSurvey(Survey survey) {this.survey = survey;}public Set<Question> getQuestions() {return questions;}public void setQuestions(Set<Question> questions) {this.questions = questions;}}
Page.hbm.xml:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.atguigu.surveypark.model"><class name="Page" table="pages"><id name="id" column="id" type="integer"><generator class="identity" /></id><property name="title" column="title" type="string" length="100" /><property name="description" column="description" type="string" length="200" /><!-- 映射从Page到Survey之间多对一关联关系 --><many-to-one name="survey" class="Survey" column="surveyid" /><!-- 映射从Page到Question之间一对多关联关系 --><set name="questions" inverse="true"><key column="surveyid" /><one-to-many class="Question"/></set></class></hibernate-mapping>
Survey.java
package com.atguigu.surveypark.model;import java.util.Date;/** * 调查类 */public class Survey {private Integer id;private String title = "未命名";private String preText = "上一步";private String nextText = "下一步";private String exitText = "退出";private String doneText = "完成";private Date createTime = new Date();//建立从Survey到User之间多对一关联关系private User user ;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getPreText() {return preText;}public void setPreText(String preText) {this.preText = preText;}public String getNextText() {return nextText;}public void setNextText(String nextText) {this.nextText = nextText;}public String getExitText() {return exitText;}public void setExitText(String exitText) {this.exitText = exitText;}public String getDoneText() {return doneText;}public void setDoneText(String doneText) {this.doneText = doneText;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}}
Survey.hbm.xml:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.atguigu.surveypark.model"><class name="Survey" table="surveys"><id name="id" column="id" type="integer"><generator class="identity" /></id><property name="title" column="title" type="string" length="200" /><property name="preText" column="pretext" type="string" length="50" /><property name="nextText" column="nexttext" type="string" length="50" /><property name="doneText" column="donetext" type="string" length="50" /><property name="exitText" column="exittext" type="string" length="50" /><property name="createTime" column="createtime" type="string" length="200" /><!-- 映射从Survey到User之间多对一关联关系 --><many-to-one name="user" class="User" column="userid" /><!-- 映射从Survey到Page之间一对多关联关系 --><set name="pages" inverse="true"><key column="surveyid" /><one-to-many class="Page"/></set></class></hibernate-mapping>
Question.java:
package com.atguigu.surveypark.model;/** * 问题类 */public class Question {//private Integer id;// 题型0-8private int questionType;//private String title;// 选项private String options;// 其他项private boolean other;// 其他项样式:0-无 1-文本框 2-下拉列表private int otherStyle;// 其他项下拉选项private String otherSelectOptions;// 矩阵式行标题集private String matrixRowTitles;// 矩阵式列标题集private String matrixColTitles;// 矩阵是下拉选项集private String matrixSelectOptions;//建立从Question到Page之间多对一关联关系private Page page;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public int getQuestionType() {return questionType;}public void setQuestionType(int questionType) {this.questionType = questionType;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getOptions() {return options;}public void setOptions(String options) {this.options = options;}public boolean isOther() {return other;}public void setOther(boolean other) {this.other = other;}public int getOtherStyle() {return otherStyle;}public void setOtherStyle(int otherStyle) {this.otherStyle = otherStyle;}public String getOtherSelectOptions() {return otherSelectOptions;}public void setOtherSelectOptions(String otherSelectOptions) {this.otherSelectOptions = otherSelectOptions;}public String getMatrixRowTitles() {return matrixRowTitles;}public void setMatrixRowTitles(String matrixRowTitles) {this.matrixRowTitles = matrixRowTitles;}public String getMatrixColTitles() {return matrixColTitles;}public void setMatrixColTitles(String matrixColTitles) {this.matrixColTitles = matrixColTitles;}public String getMatrixSelectOptions() {return matrixSelectOptions;}public void setMatrixSelectOptions(String matrixSelectOptions) {this.matrixSelectOptions = matrixSelectOptions;}public Page getPage() {return page;}public void setPage(Page page) {this.page = page;}}
Question.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.atguigu.surveypark.model"><class name="Question" table="questions"><id name="id" column="id" type="integer"><generator class="identity" /></id><property name="questionType" column="questiontype" type="integer" /><property name="title" column="title" type="string" length="100" /><property name="options" column="options" type="string" length="200" /><property name="other" column="other" type="boolean"/><property name="otherStyle" column="otherstyle" type="integer" /><property name="otherSelectOptions" column="otherselectoptions" type="string" length="200" /><property name="matrixRowTitles" column="maxtrixrowtitles" type="string" length="200" /><property name="matrixColTitles" column="matrixcoltitles" type="string" length="200" /><property name="matrixSelectOptions" column="matrixselectoptions" type="string" length="200" /><!-- 映射从Question到Page之间多对一关联关系 --><many-to-one name="page" class="Page" column="pageid" /></class></hibernate-mapping>
package com.atguigu.surveypark.model;import java.util.Date;/** * 用户类 */public class User {private Integer id;private String email;private String name;private String password;private String nickName;//注册时间private Date regDate = new Date();public Integer getId() {return id;}public Date getRegDate() {return regDate;}public void setRegDate(Date regDate) {this.regDate = regDate;}public void setId(Integer id) {this.id = id;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}}
User.hbm.xml:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.atguigu.surveypark.model.User" table="users"><id name="id" column="id" type="integer"><generator class="identity" /></id><property name="email" column="email" type="string" length="50" /><property name="password" column="password" type="string" length="50" /><property name="nickName" column="nickname" type="string" length="50" /><property name="regDate" column="regdate" type="timestamp" update="false"/></class></hibernate-mapping>
- ssh 实体关系分析确立(ER图-实体关系图)
- 实体关系图(ER图)
- PowerDesigner ER图 实体关联关系
- Dynamics CRM 自动生成实体关系图(ER Model)
- MySql (四) ER图与实体关系映射
- 数据库设计--实体关系图(ERD)
- 实体关系图(数据库资料)
- 什么是实体-联系图(ER图)
- 什么是实体-联系图(ER图)
- ER图( 实体联系图)
- ER-Studio实体间的五种关系说明
- E-R图 实体,属性,关系图
- 用实体关系图进行数据库建模
- 用实体关系图进行数据库建模
- 用实体关系图进行数据库建模
- 用实体关系图进行数据库建模
- 用实体关系图进行数据库建模
- 用实体关系图进行建模
- spring,hibernate—java与物联网方向
- Tomcat 目录结构
- MBP升级OS X 10.10后wifi异常解决方法
- selenium的使用
- Selenium环境配置
- ssh 实体关系分析确立(ER图-实体关系图)
- vector和string优先于动态分配的数组
- 在VS2005中为WM_LBUTTONDOWN添加相应函数
- 黑马程序员-Object C之property
- Selenium与QTP区别
- 抽象工厂
- test
- Java IO流学习总结
- 确定缓动是否到达目标点