Каково отношение одного объекта к самому себе в ORM?

#sql #orm #nestjs #typeorm

#sql #orm #nestjs #typeorm

Вопрос:

Я использую typeorm , и я знаю ManyToMany , OneToOne и так далее.

Но я не уверен в отношении в моей ситуации. У меня есть объект с именем Comment , чтобы пользователи могли что-то обсудить. И я хочу добавить 2 столбца с именами pid и ppid .

pid Означает отца текущего комментария, поэтому отношение pid является @OneToOne . ppid Означает корневой комментарий. И окончательный вид, как показано ниже

   userA:xxxxx
    userB reply userA:xxxxx
    userC reply userB:xxxxx
    userD reply userC:xxxxx
  

Но я не уверен в отношении ppid . Кто может мне это сказать?

Комментарии:

1. Доступ к корневому комментарию можно получить с помощью рекурсивных вызовов parents ( pids ). Вы можете рассмотреть возможность игнорирования этого.

Ответ №1:

У меня есть ответ самостоятельно.

     @Entity()
    export class Comment {
        @PrimaryGeneratedColumn()
        id: number;

        @OneToOne(type => Comment)
        @JoinColumn()
        parentComment: Comment;

        @ManyToOne(type => Comment, comment => comment.comments)
        rootComment: Comment;

        @OneToMany(type => Comment, comment => comment.rootComment)
        comments: Comment[];
    }