有一个存储所有可用语言的语言模型。语言:
attributes: {
language: {
type: 'string',
required: true
},
combinations: {
type: 'array'
}
}
简历模型:
user: {
model: 'User',
required: true
},
language: {
model:''
required: false,
through: 'resumelanguage'
}
现在我需要把这两个链接在一起,这样一份简历就可以有一个语言的集合,这个链接应该有另一个属性;比如rank
。
我该怎么做?
如果你想简历有多种语言,你必须在它的模型中添加collection
属性。
// /models/Resume.js
attributes {
// Other attributes here
user: {
model: 'user',
required: true
},
languages: {
collection:'language',
via: 'resume'
}
};
现在如果你想要一个一对多的关系,语言模型必须有model
属性
// /models/Language.js
attributes: {
language: {
type: 'string',
required: true
},
combinations: {
type: 'array'
},
resume : {
model: 'resume'
}
}
如果你想要一个多对多关系,语言模型也必须有collection
属性
// /models/Language.js
attributes: {
language: {
type: 'string',
required: true
},
combinations: {
type: 'array'
},
resumes : {
collection: 'resume',
via: 'languages'
}
}
—EDIT—
或者你可以在两个表的"链接"表(例如:languagerresume)上使用一对多关系。然后你可以给"link"表添加其他属性
// /models/LanguageResume.js
attributes: {
languages: {
collection: 'language',
via: 'resumes'
},
resumes : {
collection: 'resume',
via: 'languages'
},
rank: {
type: 'integer'
},
}