私は店舗のテーブルと製品の間に1対1の関係を作成しようとしています。 各製品には、外付けのテーブルが必要です。各ショップには、製品の外部キーが必要です。sqlize/hasOneの関係が機能しません
私はこれら2つのテーブルを定義しています。
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店は=(」./ 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