这是我的大学模特
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'
}
}
};
我的问题是,我可以在Faculty
属性中添加任意值的新college
。如果我没有具有3000 id的大学,我仍然可以添加它,但是当我列出所有院系时,college
属性将不会显示。如何防止它增加一个无效大学ID的教师呢?
答案 0 :(得分:5)
目前,水线不会以您描述的方式创建外键约束。它只创建相关的字段。
您可以使用不同的库而不是Waterline,例如Sequelize.js,这里有关于如何进行此操作的链接
https://stackoverflow.com/a/10080841/4801673
如果您使用的是SQL数据库,则可以自己手动创建外键约束。
或者,您可以通过在教师模型上查看beforeValidate()
或afterValidate()
来确认大学的价值,然后再将其设置为您的教师模型。