博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssh 实体关系分析确立(ER图-实体关系图)
阅读量:7217 次
发布时间:2019-06-29

本文共 11841 字,大约阅读时间需要 39 分钟。

比較简单的方式就是依据模仿同类产品,依据同类产品的进行模仿,表单就是一个起码要加的字段,然后依据项目须要额外添加字段。

注意:实体类之间的引用关系还须要考虑性能的影响。如:单向或是双向。

表设计:

设计好后:

写实体类

建立实体类到数据库的关联关系

概述

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
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
getQuestions() { return questions; } public void setQuestions(Set
questions) { this.questions = questions; }}
Page.hbm.xml:

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:

Question.java:

package com.atguigu.surveypark.model;/** * 问题类 */public class Question {	//	private Integer id;	// 题型0-8	private 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

User.java
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:
你可能感兴趣的文章
kendo grid序号显示
查看>>
Spring 教程(二) 体系结构
查看>>
Indexes
查看>>
2.Web中使用iReport 整合----------创建html格式的
查看>>
异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file
查看>>
最全三大框架整合(使用映射)——applicationContext.xml里面的配置
查看>>
初步理解Java的三大特性——封装、继承和多态
查看>>
知识点积累(一)
查看>>
iphone-common-codes-ccteam源代码 CCFile.m
查看>>
python:浅析python 中__name__ = '__main__' 的作用
查看>>
修改tomcat端口后不能IP访问问题
查看>>
review board
查看>>
URAL 1495 One-two, One-two 2
查看>>
牛客国庆集训派对Day3 G Stones
查看>>
虚函数简单总结
查看>>
插入排序--算法导论
查看>>
NoSQL -- Redis使用
查看>>
处理iphone的 .play() 不能播放问题
查看>>
jetty404web界面服务器信息隐藏
查看>>
22个Photoshop网页设计教程网站推荐
查看>>