Каждое поле, определенное в модели (таблице), отображается в столбце базы данных.
Это то, что в основном делает sequelize
.
Теперь, есть ли поле в PostgreSQL
база данных, которая является объектом?
Для того, что вы пытаетесь сделать, вам просто нужно использовать ассоциации между таблицами.
Создать новую модель (таблицу) с именем provider
:
И добавьте ассоциации в следующем примере:
module.exports = (sequelize, DataTypes) => {
const Provider = sequelize.define(
'provider',
{
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING
},
email: {
type: DataTypes.STRING
},
privacyPolicy: {
type: DataTypes.STRING
}
},
{
freezeTableName: true,
tableName: 'provider'
}
);
// Apply the accosiation:
Provider.hasMany /* or has one */ (Segment, {foreignKey: 'provider_id'});
return Provider;
}
И в вашей модели Segment
добавьте внешний ключ и ссылку на Provider
module.exports = (sequelize, DataTypes) => {
const Segment = sequelize.define(
'segment',
{
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
provider_id: {
type: DataTypes.INTEGER,
references: {
model: 'provider',
key: 'id
}
}
},
{
freezeTableName: true,
tableName: 'segment'
}
);
// Apply the accosiation:
Segment.belongsTo(Provider, {foreignKey: 'id'});
return Segment;
}