Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Database SailsJS上的外键约束_Database_Node.js_Relational Database_Sails.js_Waterline - Fatal编程技术网

Database SailsJS上的外键约束

Database SailsJS上的外键约束,database,node.js,relational-database,sails.js,waterline,Database,Node.js,Relational Database,Sails.js,Waterline,这是我的大学模型 module.exports = { attributes: { name:{ type:'string', required:true }, location:{ type:'string', required:true }, faculties:{ collection:'faculty',

这是我的大学模型

module.exports = {

  attributes: {
      name:{
        type:'string',
        required:true
      },
      location:{
            type:'string',
            required:true
        },
        faculties:{
            collection:'faculty',
            via:'college'
        }
  }
};
这是我的教员模型

module.exports = {

  attributes: {
        name:{
            type:'string',
            required:true
        },
        description:{
            type:'string'
        },
        college:{
            model:'college',
        required:true
        }
        ,
        years:{
            collection:'year',
            via:'faculty'
        }
  }
};

我的问题是,我可以在
学院
属性中添加任何值的新
教员
。如果我没有3000 id的学院,我仍然可以添加它,但是当我列出所有学院时,
college
属性不会显示。如何防止它添加具有无效学院id的教员?

目前,waterline不会以您描述的方式创建外键约束。它只创建关联的字段

您可以使用不同的库,而不是像Sequelize.js这样的Waterline。这里有一个关于如何进行此操作的链接

如果您使用的是SQL数据库,您可以自己手动创建外键约束


或者,您可以在教员模型中设置学院值之前,通过签入
beforeValidate()
afterValidate()来验证学院值
在您的教员模型上。

您必须在您的协会上设置一个控制项,以防止添加具有无效学院id的教员。您需要在您的模型中实施beforeValidate方法并手动检查您的学院id