Las relaciones en sqlize / hasOne no funcionan
Estoy tratando de crear una relación 1: 1 entre la tabla de tiendas y el producto. Cada producto debe tener una clave externa de la tabla de la tienda y cada tienda debe tener una clave externa del producto.
He definido esas dos tablas.
module.exports = function( sequelize , DataTypes ){
var shops = sequelize.define('shops',{
id: {
type: DataTypes.INTEGER,
allowNull:false,
primaryKey:true,
autoIncrement:true
},
name:{
type:DataTypes.STRING,
allowNull:false
},
address:{
type: DataTypes.STRING,
allowNull:false
},
web:{
type: DataTypes.STRING,
allowNull:false
},
price:{
type: DataTypes.INTEGER,
allowNull:false
}
})
return shops
}
`
var shop = require ('./ shops.js');
module.exports = function( sequelize , DataTypes ){
var component = sequelize.define('component',{
id: {
type: DataTypes.INTEGER,
allowNull:false,
primaryKey:true,
autoIncrement:true
},
name:{
type: DataTypes.STRING,
allowNull:false
},
storage:{
type: DataTypes.INTEGER,
allowNull:false
},
bilance:{
type: DataTypes.INTEGER,
allowNull:false
}
},{
classMethods:{
associate:function(models){
component.hasOne(shop,{foreignKey:'foreign_key'})
}
}
})
return component;
}
dentro del archivo db.js un conectado usando.
db.shop.belongsTo(db.component)
db.component.hasOne( db.shop ,{foreignKey : 'shop_id'})
pero esto agregó componentId {clave externa} y shop_id otra clave externa, ambos a la tabla de la tienda.
Si reemplazo 1: 1 relación si 1: n ej.
db.component.hasMany(..)
Hace lo mismo, agrega ambas claves foráneas a la tabla de tiendas