如何使用面向对象建模来创建此数据库

时间:2018-09-15 18:31:29

标签: java

用户

出于访问控制的目的,系统中有两种类型的用户:管理员和常规用户。

任何人都可以在系统中注册并成为常规用户。注册期间,用户必须提供以下信息:

名字和姓氏 职位:学生,教职员工 组织单位:可以是学院,部门,部门,办公室(例如,本科学习办公室),也可以是未向学生申报的组织单位。 用户名和密码 电子邮件 用户在注册过程中提供的可选信息包括:

标题:例如,“ LSAMP主任”或“ ACM学生分会主席” 计划联盟LSAMP,LSAMP-BD,MBRS-RISE,MARC-U * STAR,通向未来的桥梁,ACS项目种子,NSF-CREST,FYrE @ ECST,BOOST,MEP,CAPS等。

事件

任何用户都可以提交要发布在Web门户上的事件。发布事件之前,必须由管理员进行审核和批准,除非指定了用户为事件组织者,否则可以直接发布用户提交的事件。

事件具有名称,描述,位置,开始时间和结束时间。事件可能具有标签,这些标签是描述事件类型,内容,从属关系等的关键字。例如,由ACM学生分会主办的关于机器人技术的研讨会可以用“ Robotics”,“ ACM”,“ Computer Science”标记。

系统必须跟踪谁参加了活动(我们假设会有签入机制)。

1 个答案:

答案 0 :(得分:0)

//Model for user class
@Entity
public class User{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String id;

@Column
@NotNull
private String userType;  //can be regular user or admin

@Column
@NotNull
private String firstName;

@Column
@NotNull
private String lastName;

@Column
@NotNull
private String position;

@Column
@NotNull
private String organizationalUnit;

@Column
@NotNull
private String userName;

@Column
@NotNull
private String password;

@Column
@NotNull
private String email;

@Column
private String title;

@Column
private String programAffiliations;

//create the getters and setters
}

//Model for event
@Entity
public class Event{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String id;

@Column
@NotNull
private String description;  

@Column
@NotNull
private String location;

@Column
@NotNull
private long startTime;

@Column
@NotNull
private long endTime;

@Column
private String eventType;

@Column
private String content;

@Column
private String affiliation;

//create the getters and setters
}

您可以通过创建映射,将用户ID和事件ID存储在单独的表中,从而跟踪创建事件和参加事件的人员。根据需要在用户和事件之间进行映射。