我目前正在制作一个应用程序来打出和打出员工。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? –