#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[];
}