2016-10-02 2 views
0

Ich mache derzeit eine App für Punch-In und Out-Mitarbeiter.Wakanda: Ändern Feld bei der Erstellung von Einträgen

Ich habe drei Tabellen, eine für die Mitarbeiter, eine für die PunchIn und eine für die PunchOut.

Diagram

Was ich will, ist folgendes: wenn ich einen PunchIn schaffen, den is_in Eintrag ändern (der Tabelle Mitarbeiter) zu true und wenn ich einen PunchOut schaffen, die is_in ist falsch.

Wie kann ich mit Beziehungen umgehen, um dies zu machen?

Danke!

Antwort

0

Unter der Annahme, die Mitarbeiter Einheit bereits vorhanden ist, es ist nur:

punchInEntity.Employee.is_in = true; 

und

punchOutEntity.Employee.is_in = false; 

Seien Sie sicher, dass danach beide Entitäten speichern:

punchOutEntity.save(); 
punchOutEntity.Employee.save(); 

Allerdings möchten Sie vielleicht Überlegen Sie, is_in ein berechnetes Attribut zu machen. In seiner Methode könnten Sie nach einer punchOutCollection Entität suchen, die nach dem aktuellen Datum/Uhrzeit ist. Gibt false zurück, wenn eine gefunden wird, und true, wenn nicht (solange mindestens eine punchInCollection Entität vorhanden ist). Auf diese Weise müssen Sie sich keine Gedanken über die Aktualisierung is_in machen und es wird immer korrekt sein.

+0

Ich habe vergessen zu erwähnen, dass Sie die Mitarbeiterattributnamen möglicherweise in Mitarbeiter ändern möchten, um der Konvention der Anfang Attributnamen mit Kleinbuchstaben zu entsprechen. Wenn wir schon dabei sind, warum sollten wir punchInCollection und punchOutCollection nicht in punchIns und punchOuts umbenennen? –

0

Beziehungen sind nicht der beste Anwendungsfall hier. Sie benötigen Ihre Angestellteneinheit, um eine Punchin-Entität zu erstellen. Also, warum nicht direkt aktualisieren Sie Ihre Mitarbeiter-Entität statt Beziehungen zu verwenden?

Ein Beispiel:

var emp = ds.Employees.find("ID = 1"); 
var myPunchin = new ds.Punchin({ 
    employee: emp 
}); 
myPunchin.save(); 

myPunchin.employee.is_in = true; 
myPunchin.employee.save(); 

Noch besser ohne Beziehungen, können Sie myPunchin.employee durch emp ersetzen.

Verwandte Themen