Я хочу иметь несколько Address
для любого из Person
, Location
или Place
и, возможно, других типов объектов в будущем.я хотел бы иметь одно поле в моей Address
модели, которое указывает на id
любой вещи, к которой относится этот адрес, без необходимости иметь personId
, locationId
и placeId
и т. д. ... на каждом Address
когда они будут использовать только один из них.
моя структура таблицы выглядит следующим образом:
addresses.entityId => people.id | locations.id | places.id
как мне смоделировать это с @ForeignKey
в sequelize-typcript ?
мои модели выглядят так:
@Table
class Address extends Model<Address> {
@Column({
type: DataType.UUID,
allowNull: false,
primaryKey: true,
unique: true,
defaultValue: DataType.UUIDV4
})
id: string;
@ForeignKey // ... ??
entityId: string;
}
@Table
class Person extends Model<Person> {
@Column({
type: DataType.UUID,
allowNull: false,
primaryKey: true,
unique: true,
defaultValue: DataType.UUIDV4
})
id: string;
}
@Table
class Location extends Model<Location> {
@Column({
type: DataType.UUID,
allowNull: false,
primaryKey: true,
unique: true,
defaultValue: DataType.UUIDV4
})
id: string;
}
@Table
class Place extends Model<Place> {
@Column({
type: DataType.UUID,
allowNull: false,
primaryKey: true,
unique: true,
defaultValue: DataType.UUIDV4
})
id: string;
}