用户
出于访问控制的目的,系统中有两种类型的用户:管理员和常规用户。
任何人都可以在系统中注册并成为常规用户。注册期间,用户必须提供以下信息:
名字和姓氏 职位:学生,教职员工 组织单位:可以是学院,部门,部门,办公室(例如,本科学习办公室),也可以是未向学生申报的组织单位。 用户名和密码 电子邮件 用户在注册过程中提供的可选信息包括:
标题:例如,“ LSAMP主任”或“ ACM学生分会主席” 计划联盟LSAMP,LSAMP-BD,MBRS-RISE,MARC-U * STAR,通向未来的桥梁,ACS项目种子,NSF-CREST,FYrE @ ECST,BOOST,MEP,CAPS等。
事件
任何用户都可以提交要发布在Web门户上的事件。发布事件之前,必须由管理员进行审核和批准,除非指定了用户为事件组织者,否则可以直接发布用户提交的事件。
事件具有名称,描述,位置,开始时间和结束时间。事件可能具有标签,这些标签是描述事件类型,内容,从属关系等的关键字。例如,由ACM学生分会主办的关于机器人技术的研讨会可以用“ Robotics”,“ ACM”,“ Computer Science”标记。
系统必须跟踪谁参加了活动(我们假设会有签入机制)。
答案 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存储在单独的表中,从而跟踪创建事件和参加事件的人员。根据需要在用户和事件之间进行映射。