Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sequelize创建一对多,而不是一对一_Javascript_Mysql_Node.js_Sequelize.js_Mysql Workbench - Fatal编程技术网

Javascript Sequelize创建一对多,而不是一对一

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

我正在创建菜单和菜单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,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工作台视图