java实体关系图_ssh 实体关系分析确立(ER图-实体关系图)

该博客介绍了如何基于SSH框架设计Java实体关系图,包括用户、调查、页面和问题四个实体类,并讨论了实体类之间的单向、双向关联关系。通过创建对应的数据库表并建立实体类与表的映射关系,实现数据持久化。同时,强调在设计实体关系时要考虑性能因素。
摘要由CSDN通过智能技术生成

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

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

3e5b755b7c736b6b4045e366385b1a0e.png

表设计:

5c6c478f4e9d29cf0f9867c70e112719.png

70b1b1cdee2dff63bb058e081c4a1887.png

设计好后:

写实体类

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

概述

5.实体关系分析

1.类结构:带箭头是单线关联,不带箭头是双向关联

----------------------------------------

class User

(1)

{{                      {

{

Integer id ;

Integer id ;        Integer id ;        Integer id ;

......                ...                ...

User user ;                 Survey survey ;             Page page ;

Set pages ;        Set 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]

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

[Survey.hbm.xml]

[Page.hbm.xml]

[Question.hbm.xml]

具体代码例如以下:

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:

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

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:

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

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

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

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:

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值