我正在使用sequelize-typescript创建一个sequelize的node.js服务器。我有一个实体 - 将其命名为Employee
。
在数据库中,所有配置文件存储在同一个表中,但有两种不同的类型 - 比如Manager
和Operator
。
每种类型都有自己与不同表格的关系 - 比如说:
Manager -> ManagerOptions
Operator -> OperatorOptions
我已经创建了一个模型Employee
和两个子类 - Manager
和Operator
。每个扩展的Employee都具有相同的基本属性,并且每个子类中还有一些其他属性,例如ManagerOprtions
和OperatorOptions
。
// Employee.ts
import { Table, Column, Model } from 'sequelize-typescript';
@Table({
tableName: 'employees'
})
export class Employee extends Model<Employee> {
@Column public type_id: number;
@Column public name: string;
@Column public url: string;
}
// Manager.ts
import { Column, HasOne } from 'sequelize-typescript';
import { Employee } from './Employee';
import { ManagerInfo } from './ManagerInfo';
export class Manager extends Employee {
@Column public subordinate_count: number;
@HasOne(() => ManagerInfo, {
foreignKey: 'manager_id',
as: 'info'
})
public info: ManagerInfo;
}
// Operator.ts
import { Column, HasOne } from 'sequelize-typescript';
import { Employee } from './Employee';
import { OperatorInfo } from './OperatorInfo';
export class Operator extends Employee {
@Column public calls_count: number;
@HasOne(() => OperatorInfo, {
foreignKey: 'operator_id',
as: 'info'
})
public info: OperatorInfo;
}
如果您不熟悉此库,我如何使用sequelize-typescript
(或sequelize
}创建此类关系,以便我可以{{1}搜索Employees
结果集中有不同的模型吗?
name
希望我能解释得对。