Stack Overflow em Português Asked by Vitor Cordeiro on January 2, 2022
Tenho duas tabelas, uma de Colaborador e outra de Setor. Um colaborador pertence a um setor e um setor contém vários colaboradores. Consegui criar as tabelas, porém, não sei como fazer o relacionamento entre as tabelas com o Sequelize.
Vi alguns tutoriais usando belongsTo e hasToMany, porém fico confuso, pois eu preciso especificar o campo da tabela que será referenciado não?
Aqui estão as tabelas
Tabela Setor:
const Sequelize = require('sequelize');
const sequelize = require('../config/db');
const setor = sequelize.define('setor', {
codigo: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
nome: {
type: Sequelize.STRING,
allowNull: false
},
});
Tabela de Colaborador:
const sequelize = require('../config/db');
const Sequelize = require('sequelize');
const Colaborador = sequelize.define('colaboradores', {
codigo: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
nome: {
type: Sequelize.STRING,
allowNull: false
},
cargo: {
type: Sequelize.STRING,
allowNull: false
},
codigoSetor: {
type: Sequelize.INTEGER,
allowNull: false
},
email: {
type: Sequelize.STRING,
allowNull: false
},
senha:{
type: Sequelize.STRING,
allowNull: false
},
matricula: {
type: Sequelize.STRING,
allowNull: false
}
})
1 colaborador 'belongsTo' setor
1 setor 'hasMany' colaborador,
Na migration, você precisa informar qual campo vai ser a chave estrangeira! ex:
codigoSetor: {
type: Sequelize.INTEGER,
allowNull: false,
references:{model: 'setor', key: 'codigo'}
onUpdate:'CASCADE',
onDelete:'CASCADE
}
e no model você precisa indicar a associação.
ex:
static associate(models){
this.'hasMany ou belongsto'(model.Setor,{foreignKey:'codigoSetor', as:'nome da assossiação'})
}
Tem um vídeo da RocketSeat esta bem explicadinho lá! SQL no Node.Js com Sequelize
Answered by Diego Schinemann on January 2, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP