2016-10-02 93 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