0
我試圖創建商店和產品表之間的1:1關係。 每個產品都應該有一個商店桌子的外鍵,每個商店都應該有產品的外鍵。sqlize/hasOne中的關係不起作用
我已經定義了這兩個表。
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
}
`
變種店=要求(」 ./ 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;
}
db.js文件裏面有一個連接它使用。
db.shop.belongsTo(db.component)
db.component.hasOne(db.shop ,{foreignKey : 'shop_id'})
但這添加COMPONENTID {外鍵}和shop_id其它外鍵,兩人到店表。
如果我更換1:1間的關係,如果1:N例如
db.component.hasMany(..)
它做同樣的事情,增加了外國鍵進入商店表
這也不會將FK添加到組件表中。但它不再添加到餐桌上了。 – Darlyn
這只是說組件HAS ONE商店。您確定您正在應用這些更改嗎?確保你正在同步表格。 @trolkura – James111
是的,我正在同步並保存更改。在sqlite瀏覽器中,組件表仍然不包含FK http://pastebin.com/X2gGLqm2這裏是代碼 – Darlyn