как я могу достичь темы и подтемы?

отаю над игрой, в которой есть два типа пользователей; Администратор и пользователь, поэтому администратор может генерировать столько вопросов, сколько он хочет, поэтому эти вопросы могут бытьNORMAL, MULTICHOICE, BINARI, SMALL_DESCRIPTIONТаким образом, каждый раз, когда администратор хочет создать его, он должен решить, какой тип ответа хочет получить этот вопрос, а также тему этого вопроса (это может быть подтема).

Он может создать Викторину, способ создать Викторину состоит в том, что он должен выбрать вопросы, которые он создал ранее.

Также он может проверять историю пользователя, что означает, что при вызове конечной точки он должен иметь возможность проверить вопросы, которые задал этот пользователь (с оценкой, какой вопрос не удался, что он ответил).

У меня отныне урокиQuestion а такжеAnswer но я как-то застрял с вопросом «Создать вопрос с ответом», назначенным для темы, а затем с созданием викторины, потому что мне не хватало также пользователя в обеих частях, чтобы узнать, какой пользователь создал вопрос / викторину и какой пользователь ответил на вопрос / викторину и хранить некоторые данные, чтобы сделать исторический.

Мой класс вопросов имеет:

@Entity(name="question")
public class Question extends DateAudit {
@Id
@Column(name = "question_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "question_seq")
@SequenceGenerator(name = "question_seq", allocationSize = 1)
private Long id;

@Column(name = "text_question")
private String textQuestion; //The question itself "What's the name of ..."

@Column(name = "answerDescription")
@NotBlank(message = "Answer description")
private String answerDescription; //The answer to the question as an explanation

@Column(name = "isExamQuestion", nullable = false) 
private Boolean isExamQuestion; //A flag for the user to filter when he wants to do a question he only will see those that are not isExamQuestion, isExamQuestion are the questions that are going to appear when he wants to create a Quiz

@OneToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private Set<Answer> answers; //List of answers...

@Column(name = "answer_type", nullable = false) 
private String answerType; //I don't know if it goes here, but the answerType mentioned before NORMAL,MULTICHOICE,.... is to render on the user app

И ответ

@Entity(name = "answer")
public class Answer extends DateAudit {

    @Id
    @Column(name = "answer_id")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "answer_seq")
    @SequenceGenerator(name = "answer_seq", allocationSize = 1)
    private Long id;

    @Column(name = "answerToQuestion") 
    @NotBlank(message = "Answer to question name can not be blank") 
    private String answerToQuestion; //If the questions is what's 2*2 this could be 3

    @ManyToOne 
    private Question question; //In what question appear that answer

    //Here I'm wondering if I have to add a flag saying isCorrect to detect if it's the correct answer or not

Как вы можете видеть, я скучаю по теме, истории и викторине, и я не ссылаюсь на то, какой пользователь выполнил вопрос, или викторину, или решил вопрос / вопрос. Не могли бы вы указать мне, как это сделать?

РЕДАКТИРОВАТЬ

Вопросы, которые я получил:

вопрос предназначен только для одного пользователя или группы пользователей?

Для разностных пользователей можно ответить на один и тот же вопрос или вопрос, а это означает, что Q1 может сделать 40 пользователей.

тест связан с темой?

При создании теста вы выбираете тему, чтобы выбрать вопросы, которые имеют эту тему. Пример: создание теста «Изучить и подвести итоги» Мне нужно будет отфильтровать по теме: «Математика», а затем «Подтопическая сумма», чтобы я мог выбрать вопросы, которые нужно поместить в тест.

как вы планируете создать тему или подтему?

Администратор должен иметь конечную точку для создания темы или подтемы, отныне есть только подтема, нет подтемы для подтемы, теперь есть Тема: Математика Подтема: квадратный корень. Таким образом, перед созданием вопроса или викторины администратор должен сначала создать тему, а если он хочет добавить подтему, то создать ее, а затем, когда он пытается создать вопрос, он может сказать, что этот вопрос из X темы / подтемы. и этот вопрос можно отнести к этому.

Что вы имеете в виду под «историческим»?

Ну, это что-то для стороны администратора, у администратора должна быть конечная точка, которая с идентификатором или именем пользователя возвращает все вопросы викторины (первая конечная точка) или все вопросы (вторая конечная точка), которые пользователь выполнил, с оценкой, числом неудач / количество правильных, но мне интересно, что это должна быть сторона переднего плана, чтобы выполнить вычисления, я имею в виду, что конечная точка возвращает всю эту информацию, общее количество вопросов / тест выполнено, оценка, какой вопрос не удался, и т. д. .. а затем в интерфейсе сделать больше расчетов.

Ответы на вопрос(1)

Ваш ответ на вопрос