Отношение OneToOne, OneToMany или ManyToOne для столбца, ссылающегося на одну и ту же таблицу - PullRequest
0 голосов
/ 22 февраля 2020

Я хочу создать Path сущность. Эта сущность имеет столбец идентификатора, который не генерируется автоматически. У сущности Path может быть преемник. Этот внешний ключ обнуляется, но при назначении несуществующего идентификатора я хочу выдать ошибку. Итак, я начал с этого

@Entity()
export class Path extends BaseEntity {
  @PrimaryColumn() // I will set this manually
  public id: string;

  @OneToMany(() => Path, path => path.id, { nullable: true }) // relation setup
  public successorId?: string;
}

Но я не уверен, нужно ли мне использовать OneToOne , OneToMany или ManyToOne . Итак,

  • у одного пути может быть только один преемник
  • один путь может быть преемником многих путей

Так что я думаю, что мой дизайн сущности, кажется, правильно, но я не уверен. Какой правильный декоратор использовать здесь с точки зрения дизайна базы данных? Было бы здорово, если бы кто-то мог помочь :) Кстати. Я сейчас поддерживаю Postgres и MS SQL.

...