如何使用sequelize-typescript从单个字段引用多个模型?

时间:2018-10-15 10:27:09

标签: node.js typescript sequelize.js sequelize-typescript

我希望将来AddressPersonLocation中的任何一个具有多个Place,并且可能还有其他实体类型。我想在我的Address模型上有一个单一字段,它指向与该地址相关的任何事物的id,而不必具有personIdlocationId和{{ 1}}等...在每个placeId上只会使用其中之一。

我的表结构如下:

Address

如何在sequelize-typescript中用addresses.entityId => people.id | locations.id | places.id对此建模?

我的模型如下:

@ForeignKey

1 个答案:

答案 0 :(得分:0)

在Sequelize Typescript的情况下,可以多次给自定义装饰器赋值,因此,如果您希望将列引用到多个模型,则可以多次给出@ForeignKey,就像我给出的这段代码一样。 您可以执行以下操作:

@Table
class Address extends Model<Address> {
    @Column({
      type: DataType.UUID,
      allowNull: false,
      primaryKey: true,
      unique: true,
      defaultValue: DataType.UUIDV4
    })
    id: string;
    @ForeignKey(() => Person)
    @ForeignKey(() => Location)
    @ForeignKey(() => Place)
    @Column({})
    public entityId: string;
} 

参考: Sequelize Typescript Documentation