有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

用户

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

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

名 职位:学生、教员或职员 组织单位:可以是一所学院、一个系、一个部门、一个办公室(例如本科办公室),也可以是未申报的学生单位。 用户名和密码 电子邮件 用户在注册期间提供的可选信息包括:

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

事件

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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