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