2016-04-25 59 views
0

我目前在我的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); 
        }); 

      }); 
     }) 
} 

用於與自動生成的關聯表完美工作的上述控制器的方法,但與自定義一個就不再添加用戶和列表表。

回答

0

不確定我是否完全遵循,但如果您有多對多的關係,則需要一個將這兩個表連接在一起的關聯表,並且該表中的主鍵是來自主鍵UserAttendance表。也許你可以將你的狀態存儲在關聯表中。

這是否有意義,和/或幫助?

+0

我確實有一個關聯表,它是由水線自動生成的。 這是上面提到的「attendence_attendees__user_attendancelist」表。我想在此表中添加一列,但我不知道如何在Sails中更改此表。 –

相關問題