我目前在我的sails項目中創建了以下表格,我有一個名爲「Users」的表格和一個名爲「Attendance」的表格。這些表存儲在MySQL數據庫中。 每個用戶可以成爲衆多出席者的一部分,每個出席者可以有多個用戶。我應該如何將屬性存儲在sails.js中的多對多關係中?
這是通過下面的代碼實現:
考勤模式:
attributes: {
attendees: {
collection: 'user',
via: 'attendancelist',
dominant: true
}
用戶模式:
attributes{
attendancelist: {
collection: 'attendance',
via: 'attendees'
}
}
這將創建一個名爲表:attendence_attendees__user_attendancelist現在
我希望商店獲得每個用戶的「狀態」。該狀態將是一個布爾值,用於描述出席中的用戶是否存在。
我想將每個用戶的狀態存儲在「attendence_attendees__user_attendancelist」表中。
這是可能的還是有更好的方式來存儲狀態?
我設法創建了一個自定義關聯表,但是現在sails不再向關聯表中添加數據。我使用下面的代碼:
//Attendance model
attributes: {
attendees: {
collection: 'user',
via: 'attendancelist',
through: 'userattendance'
}
//User model
attributes{
attendancelists: {
collection: 'attendance',
via: 'attendees',
through: 'userattendance'
}
}
//Userattendance model
attributes:{
attendancelist: {
model: 'attendance',
foreignKey: true,
collumnName: 'attendance_id'
},
attendees: {
model: 'user',
foreignKey: true,
collumnName: 'user_id'
},
status: {
type: 'boolean',
defaultsTo: false
}
}
//controller method to add data:
getGroupAttendees: function(req, res){
Group.findOne({id: req.param('groupID')})
.populateAll()
.exec(function getGroup(err, group){
if(err) return res.negotiate(err);
if(!groep) return res.json(401, {err:'group not found'});
var users = [];
group.attendees.forEach(function(user){
users.push(_.pick(user, ['id']));
})
var attendancelistOBJ = {
planning: 1,
attendees: users
}
Attendance.create(attendancelistOBJ, function agendaCreated(err, lijst){
if(err) return res.negotiate(err);
lijst.save(function(err, lst){
if(err) return next(err);
return res.json(attendancelistOBJ.attendees);
});
});
})
}
用於與自動生成的關聯表完美工作的上述控制器的方法,但與自定義一個就不再添加用戶和列表表。
我確實有一個關聯表,它是由水線自動生成的。 這是上面提到的「attendence_attendees__user_attendancelist」表。我想在此表中添加一列,但我不知道如何在Sails中更改此表。 –