我目前正在製作一個應用程序來打出和打出員工。Wakanda:創建條目時修改字段
我有三個表格,一個用於工作,一個用於PunchIn,另一個用於PunchOut。
我想是這樣的:當我創建一個PunchIn,它(的表Employees)的is_in
項改爲true
,當我創建的PunchOut,該is_in
是假的。
我該如何處理關係才能做到這一點?
謝謝!
我目前正在製作一個應用程序來打出和打出員工。Wakanda:創建條目時修改字段
我有三個表格,一個用於工作,一個用於PunchIn,另一個用於PunchOut。
我想是這樣的:當我創建一個PunchIn,它(的表Employees)的is_in
項改爲true
,當我創建的PunchOut,該is_in
是假的。
我該如何處理關係才能做到這一點?
謝謝!
假設員工實體已經存在,它只是:
punchInEntity.Employee.is_in = true;
和
punchOutEntity.Employee.is_in = false;
一定要保存後兩個實體:
punchOutEntity.save();
punchOutEntity.Employee.save();
但是,您可能希望考慮使is_in
成爲計算屬性。在它的方法中,您可以搜索在當前日期/時間之後的實體。如果找到一個,返回false,否則返回true(只要至少有一個punchInCollection
實體)。這樣,你不必擔心更新is_in
,它將永遠是正確的。
這裏的關係並不是最好的用例。您需要您的員工實體創建一個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
。
我忘了提及您可能想要將員工屬性名稱更改爲員工,以便使用小寫字母匹配起始屬性名稱的約定。當我們在這裏時,爲什麼不把punchInCollection和punchOutCollection重命名爲punchIns和punchOuts? –