我定义一个表如下:
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,请问这里定义是否有必要呢?
保留吧,性能会更好一些,type直接查询的时候,还有过滤或者分组的时候