Estou criando 2 tabelas que se interagem. O sentido delas é uma receber todas as transações realizadas, seja entrada ou saída, e outra que vai consolidar essas informações de acordo com o nome do produto. Algo semelhante a um estoque.
Criei uma tabela terceira(TransacoesConsolidacoes), onde os ID's de cada tabela estarão relacionados para realizar alterações ou exclusão de acordo com o desejo do usuário.
A minha dúvida é: o ASSOCIATE é uma função para fazer um JOIN entre as duas tabelas (Transacoes e Consolidacoes) e criar a terceira (TransacoesConsolidacoes) ? Ele deveria popular automaticamente no SQL, já que tenho que criar um migrate para a tarceira tabela? Porém quando vou ao BD e faço um SELECT a tabela TransacoesConsolidacoes está em branco, acho que deveria ser populado automaticamente, já que quando criado o migrate, é dito quais são as references.
Segue o modelo da tabela Transações:
module.exports = (sequelize, DataTypes) => {
const Transacoes = sequelize.define('Transacoes', {
tipo: DataTypes.STRING,
ticker: DataTypes.STRING,
qtd: DataTypes.INTEGER,
preco: DataTypes.FLOAT,
taxa: {type: DataTypes.FLOAT, allowNull: true, defaultValue: 0.0},
total: DataTypes.FLOAT,
data: DataTypes.DATEONLY
},
{
sequelize,
modelName: 'transacoes',
});
return Transacoes
};
Transacoes.associate = (models) =>{
Transacoes.belongsToMany(
Model.models.Consolidacoes,{
through: 'TransacoesConsolidacoes',
foreignKey: 'transacoes_id',
as: 'consolidacoes'
});
}
Segue o model da tabela Consolidações:
module.exports = (sequelize, DataTypes) => {
const Consolidacoes = sequelize.define('Consolidacoes', {
precoMedio: DataTypes.FLOAT,
qtdTotal: DataTypes.FLOAT,
valorTotal: DataTypes.FLOAT
}, {
sequelize,
modelName: 'Consolidacoes',
});
return Consolidacoes
};
Consolidacoes.associate = (models) =>{
Consolidacoes.belongsToMany(
Model.models.Transacoes, {
through: 'TransacoesConsolidacoes',
foreignKey: 'consolidacoes_id',
as: 'transacoes'
});
}
Segue o model da tabela TransacoesConsolidações:
module.exports = (sequelize, DataTypes) => {
const TransacoesConsolidacoes = sequelize.define('TransacoesConsolidacoes', {
},
{
sequelize,
modelName: 'transacoesconsolidacoes',
});
return TransacoesConsolidacoes
};
TransacoesConsolidacoes.associate = (models) => {
TransacoesConsolidacoes.belongsToMany(Model.models.Transacoes,
{through: 'TransacoesConsolidacoes',
foreignKey: 'transacoes_id',
as: 'consolidacoes'});
TransacoesConsolidacoes.belongsToMany(Model.models.Consolidacoes,
{through: 'TransacoesConsolidacoes',
foreignKey: 'consolidacoes_id',
as: 'transacoes'});
}