我希望将来Address
,Person
或Location
中的任何一个具有多个Place
,并且可能还有其他实体类型。我想在我的Address
模型上有一个单一字段,它指向与该地址相关的任何事物的id
,而不必具有personId
和locationId
和{{ 1}}等...在每个placeId
上只会使用其中之一。
我的表结构如下:
Address
如何在sequelize-typescript中用addresses.entityId => people.id | locations.id | places.id
对此建模?
我的模型如下:
@ForeignKey
答案 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;
}