请问表中是否有必要定义一个可以计算出的字段?

我定义一个表如下:

export enum EdgeType {
  NodeToNode = 'NodeToNode',
  NodeToCombo = 'NodeToCombo',
  ComboToCombo = 'ComboToCombo',
  ComboToNode = 'ComboToNode'
}


export class Link {
  @PrimaryGeneratedColumn()
  id: number | undefined


  @Column({
    type: 'enum',
    enum: EdgeType,
    nullable: false,
    default: EdgeType.NodeToNode
  })
  type!: EdgeType

  // Node:起点
  @OneToOne(type => Node)
  @JoinColumn()
  nodeSource?: Node

  // Node:终点
  @OneToOne(type => Node)
  @JoinColumn()
  nodeTarget?: Node

  // Combo:起点
  @OneToOne(type => Combo)
  @JoinColumn()
  comboSource?: Combo

  // Combo:终点
  @OneToOne(type => Combo)
  @JoinColumn()
  comboTarget?: Combo

比如:type是:ComboToNode

那么这里就是2个字段有数据:comboSource 和 nodeTarget

我这里的疑问是,有没有必要设置这个表字段:type

因为,比如我们查询出表之后,也可以通过判断 nodeSource,nodeTarget,comboSource,comboTarget 的值(其中2个有值)进行确定type,请问这里定义是否有必要呢?

阅读 2.8k
1 个回答

保留吧,性能会更好一些,type直接查询的时候,还有过滤或者分组的时候

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏