2016-10-02 63 views
0

我目前正在製作一個應用程序來打出和打出員工。Wakanda:創建條目時修改字段

我有三個表格,一個用於工作,一個用於PunchIn,另一個用於PunchOut。

Diagram

我想是這樣的:當我創建一個PunchIn,它(的表Employees)的is_in項改爲true,當我創建的PunchOut,該is_in是假的。

我該如何處理關係才能做到這一點?

謝謝!

回答

0

假設員工實體已經存在,它只是:

punchInEntity.Employee.is_in = true; 

punchOutEntity.Employee.is_in = false; 

一定要保存後兩個實體:

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

但是,您可能希望考慮使is_in成爲計算屬性。在它的方法中,您可以搜索在當前日期/時間之後的實體。如果找到一個,返回false,否則返回true(只要至少有一個punchInCollection實體)。這樣,你不必擔心更新is_in,它將永遠是正確的。

+0

我忘了提及您可能想要將員工屬性名稱更改爲員工,以便使用小寫字母匹配起始屬性名稱的約定。當我們在這裏時,爲什麼不把punchInCollection和punchOutCollection重命名爲punchIns和punchOuts? –

0

這裏的關係並不是最好的用例。您需要您的員工實體創建一個Punchin實體。那麼,爲什麼不直接更新你的員工實體而不是使用關係呢?

一個例子:

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

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

更妙的是沒有關係的,你可以通過emp代替myPunchin.employee