Ich habe derzeit die folgenden Tabellen in meinem Segel-Projekt erstellt, ich habe eine Tabelle mit dem Namen "Benutzer" und eine Tabelle mit dem Namen "Anwesenheit". Diese Tabellen sind in einer MySQL-Datenbank gespeichert. Jeder Benutzer kann Teil vieler Teilnehmer sein und jeder Teilnehmer kann viele Benutzer haben.Wie sollte ich Attribute in einer Beziehung viele zu viele in sails.js speichern?
Dies wird mit dem folgenden Code erreicht:
Anwesenheits-Modell:
attributes: {
attendees: {
collection: 'user',
via: 'attendancelist',
dominant: true
}
User-Modell:
attributes{
attendancelist: {
collection: 'attendance',
via: 'attendees'
}
}
Dies wird eine Tabelle mit dem Namen erstellen: attendence_attendees__user_attendancelist
Now I möchte den "Status" jedes Benutzers speichern. Der Status wird ein Bool sein, das beschreibt, ob der Benutzer der Anwesenheit anwesend war oder nicht.
Ich möchte den Status jedes Benutzers in der Tabelle "attendence_attendees__user_attendancelist" speichern.
Ist dies möglich oder gibt es eine bessere Möglichkeit, den Status zu speichern?
Ich habe es geschafft, eine benutzerdefinierte assoziative Tabelle zu erstellen, aber Segel fügt nun nicht mehr Daten zur assoziativen Tabelle hinzu. Ich verwende den folgenden Code ein:
//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);
});
});
})
}
Die obige Controller-Methode verwendet, perfekt mit der automatisch generierten assoziativen Tabelle zu arbeiten, aber mit dem benutzerdefiniert man es nicht mehr beliefert Benutzern und Listen auf den Tisch.
Ich habe eine assoziative Tabelle, wird automatisch von der Wasserlinie generiert. Es ist die oben genannte Tabelle "attentiven_attendees__user_attendancelist". Ich möchte eine Spalte in dieser Tabelle hinzufügen, aber ich weiß nicht, wie ich diese Tabelle in Sails ändern soll. –