Javascript Sequelize创建一对多,而不是一对一
我正在创建菜单和菜单URL表之间的一对一关系,但它在sequelize nodejs应用程序中创建一对多关系 我试过:Javascript Sequelize创建一对多,而不是一对一,javascript,mysql,node.js,sequelize.js,mysql-workbench,Javascript,Mysql,Node.js,Sequelize.js,Mysql Workbench,我正在创建菜单和菜单URL表之间的一对一关系,但它在sequelize nodejs应用程序中创建一对多关系 我试过: db.menu\u url.belongsTo(db.menu,{foreignKey:'menu\u id'}) db.menu.hasOne(db.menu\uURL,{foreignKey:'menu\uid'}) 甚至尝试在模型定义中创建外键 但在所有的一对多不动产中都已建立 菜单\u url.js module.exports = (sequelize,DataTyp
db.menu\u url.belongsTo(db.menu,{foreignKey:'menu\u id'})
db.menu.hasOne(db.menu\uURL,{foreignKey:'menu\uid'})
module.exports = (sequelize,DataTypes) => {
const menu_urls= sequelize.define("menu_urls",{
url_id: {
type:DataTypes.INTEGER(4),
primaryKey: true
}
menu_id: {
type: DataTypes.INTEGER(3),
unique: true
}
});
return menu_urls;
}
module.exports = (sequelize, DataTypes) => {
const menus = sequelize.define("menus", {
menu_id: {
type: DataTypes.INTEGER(3),
primaryKey: true,
autoIncrement: true,
},
menu_name: {
type: DataTypes.STRING(20),
allowNull: false
}
});
return menus;
};
var db = {};
fs.readdirSync(__dirname)
.filter(file => file.indexOf(".") !== 0 && file !== "index.js")
.forEach(file => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});
db.menu_urls.belongsTo(db.menus,{foreignKey: 'menu_id'});
sequelize.sync({
force : true,
logging : console.log
}).then(function () {
console.log('Database Connected!!');
}).catch(function (err) {
console.log(err, "Something went wrong with the Database Connection!")
});
menus.js
module.exports = (sequelize,DataTypes) => {
const menu_urls= sequelize.define("menu_urls",{
url_id: {
type:DataTypes.INTEGER(4),
primaryKey: true
}
menu_id: {
type: DataTypes.INTEGER(3),
unique: true
}
});
return menu_urls;
}
module.exports = (sequelize, DataTypes) => {
const menus = sequelize.define("menus", {
menu_id: {
type: DataTypes.INTEGER(3),
primaryKey: true,
autoIncrement: true,
},
menu_name: {
type: DataTypes.STRING(20),
allowNull: false
}
});
return menus;
};
var db = {};
fs.readdirSync(__dirname)
.filter(file => file.indexOf(".") !== 0 && file !== "index.js")
.forEach(file => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});
db.menu_urls.belongsTo(db.menus,{foreignKey: 'menu_id'});
sequelize.sync({
force : true,
logging : console.log
}).then(function () {
console.log('Database Connected!!');
}).catch(function (err) {
console.log(err, "Something went wrong with the Database Connection!")
});
index.js
module.exports = (sequelize,DataTypes) => {
const menu_urls= sequelize.define("menu_urls",{
url_id: {
type:DataTypes.INTEGER(4),
primaryKey: true
}
menu_id: {
type: DataTypes.INTEGER(3),
unique: true
}
});
return menu_urls;
}
module.exports = (sequelize, DataTypes) => {
const menus = sequelize.define("menus", {
menu_id: {
type: DataTypes.INTEGER(3),
primaryKey: true,
autoIncrement: true,
},
menu_name: {
type: DataTypes.STRING(20),
allowNull: false
}
});
return menus;
};
var db = {};
fs.readdirSync(__dirname)
.filter(file => file.indexOf(".") !== 0 && file !== "index.js")
.forEach(file => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});
db.menu_urls.belongsTo(db.menus,{foreignKey: 'menu_id'});
sequelize.sync({
force : true,
logging : console.log
}).then(function () {
console.log('Database Connected!!');
}).catch(function (err) {
console.log(err, "Something went wrong with the Database Connection!")
});
已建立的关系:
sql工作台视图