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

问题描述 投票:-4回答:1

用户

系统中有两种类型的用户用于访问控制:管理员和普通用户。

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

名字和姓氏职位:学生,教师或工作人员组织单位:这可以是大学,部门,部门,办公室(例如本科学习办公室),或未申报学生。用户名和密码电子邮件用户在注册期间提供的可选信息包括:

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

活动

任何用户都可以提交要在Web门户上发布的事件。在发布事件之前,必须由管理员审查和批准事件,但如果用户被指定为事件管理器,则可以直接发布用户提交的事件。

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

系统必须跟踪谁参加了一个事件(我们假设将有一个登记机制)。

java
1个回答
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存储在单独的表中来跟踪创建事件的人员和参加事件的人员。根据需要在用户和事件之间进行映射。

© www.soinside.com 2019 - 2024. All rights reserved.